Linux 互斥锁

Linux93

在多线程编程中,引入了对象互斥的概念,以确保共享数据操作的完整性。每个对象对应一个可称为互斥体的标记,该标记用于确保任何时候只有一个线程可以访问该对象。

[En]

In multithreaded programming, the concept of object mutex is introduced to ensure the integrity of shared data operations. Each object corresponds to a tag that can be called a mutex, which is used to ensure that only one thread can access the object at any one time.

互斥锁也可以叫线程锁,接下来说说互斥锁的的使用方法。

对互斥锁进行操作的函数,常用的有如下几个:

有很多函数可以操作线程锁,其中包括许多线程锁属性的操作函数,但一般情况下,对于不复杂的情况,只需要创建、获取、释放和删除锁。

[En]

There are many functions to operate on thread locks, including many operation functions for thread lock properties, but in general, for cases that are not complex, you only need to create, acquire, release, and delete locks.

创建互斥锁

所以下面简单看一下如何创建和使用互斥锁。

在使用互斥锁之前,需要先创建一个互斥锁的对象。 互斥锁的类型是 pthread_mutex_t ,所以定义一个变量就是创建了一个互斥锁。

这就定义了一个互斥锁。但是如果想使用这个互斥锁还是不行的,我们还需要对这个互斥锁进行初始化, 使用函数 pthread_mutex_init() 对互斥锁进行初始化操作。

除了使用 pthread_mutex_init() 初始化一个互斥锁,我们还可以使用下面的方式定义一个互斥锁:

在头文件 /usr/include/pthread.h 中,对 PTHREAD_MUTEX_INITIALIZER 的声明如下

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Linux

解决centos8系统下防火墙报错的问题

解决centos8下启动防火墙报错 错误总结: centos8系统和其他的centos有了非常大的改变,网上的帖子有很多修复centos7下的版本,可以通过安装python-goject或者pytho...
Linux

安装centos8.5的配置步骤

; 安装centos8.5的配置步骤 安装centos8.5的配置步骤 在已经安装了vmware workstation的基础上进行如下操作 1.创建虚拟机(选择自定义) 2. 默认硬件设置 3.选择...
Linux

Ubuntu远程桌面助手(URDC)最新版

自动驾驶DCU及MEC属于典型的Headless设备,常见的方案有Jetson Orin+Ubuntu系统。在开发调试过程需要连接显示器(HDMI/DP)、鼠标和键盘,或使用NoMachine、VNC...
Linux

安装clearos系统

镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、clearos介绍 ClearOS是一个基于CentOS和Red Hat Enterprise Linux的简单,开源,价格合理的Linux操作...
Linux

Ubuntu18.04上安装ROS的详细教程

镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站 前言 最近,学习了胡老师的《ROS入门21讲》,在Ubuntu18.04上安装ROS过程中遇到了一些问题,解决这些问题耗费了大半天,故通过本文进...
Linux

ubuntu使用postfix和AWS-SES发送邮件

在日常开发中,邮件发送是个比较常见的场景。因此出现了很多相关的软件和服务,各大云厂商也推出自己的邮件服务。今天笔者就像大家介绍一种常见的组合,AWS的邮件服务 SES 与邮件服务器 postfix 的...
Linux

redis client原理分析

1:空闲连接池实现 空闲连接池存在一个双向链表中,一个连接用完后回收,就会从表头插入这个链表,当需要一个连接时也是从链表的表头取,从表头插入的时候会写入当前时间,所以链表是一个按时间倒序的链表,判断一...
Linux

Redis学习手册(Sorted-Sets数据类型)

一、概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score...
Linux

017 Linux 之啥是 ssh ?

1 什么是 ssh?有什么用? (1)ssh 是一种协议 (2)ssh 服务 2 ssh 基于密匙的安全验证过程是怎样的? 3 对称加密与非对称加密区别是什么? (1)对称加密 (2)非对称加密 4 ...
Linux

Linux系统磁盘管理

Linux系统磁盘管理 Linux系统磁盘管理 磁盘分区,格式化,挂载 fdisk分区 磁盘格式化 磁盘挂载 gdisk分区 交换分区SWAP swap分区创建与使用 磁盘故障案例 磁盘分区,格式化,...
Linux

Linux Cgroup v1(中文翻译)(5):Cgroup freezer

cgroup freezer对于批量启动和停止任务集合的任务管理系统来说是很有用的,这个程序经常被用在HPC族上来调度访问。cgroup freezer使用cgroups来描述被批处理任务管理系统启动...