当前位置: 首页 > article >正文

Linux—互斥锁

一、铺垫

pthread_mutex_t  :pthread库的内置类型;创建了一把锁;

查看定义、里面的东西好多;暂时看不懂;记住用之前初始化就可以了

 pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

//使用宏来初始化锁;

二、 pthread_mutex_init()

pthread_mutex_init()初始化互斥锁

int pthread_mutex_init(pthread_mutex_t *restrict mutex,
              const pthread_mutexattr_t *restrict attr);

 参数:

第一个参数:锁的地址;

第二个参数:设为nullptr,默认属性;代表锁的属性

三、pthread_mutex_destroy()

pthread_mutex_destroy()销毁锁

int pthread_mutex_destroy(pthread_mutex_t *mutex);

四、上锁、解锁

int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_trylock(pthread_mutex_t *mutex);
int pthread_mutex_unlock(pthread_mutex_t *mutex);

 成功返回0,失败返回对应的错误码;

lock为阻塞式函数,若抢不到锁,则会一直申请锁;阻塞到这个地方,知道抢到锁为止;

trylock为非阻塞式函数;抢到锁返回0;失败返回错误码;使用此函数,必须在逻辑上搞清楚


http://www.kler.cn/a/279897.html

相关文章:

  • 云原生周刊:KubeSphere 宣布开源 Thanos 的企业级发行版 Whizard
  • 深入解析SSRF和Redis未授权访问
  • 深度学习100问3-什么是共现矩阵及其作用
  • 华为Huawei路由器交换机SSH配置
  • 009 批量删除
  • docker 拉取镜像超时
  • visual studio 2022 加载.vdproj
  • 原神4.8版本抽到角色和重点培养数据表
  • EV代码签名证书——消除软件下载时的安全警告
  • AI学习指南深度学习篇-长短时记忆网络(LSTM)简介
  • 《Object-Oriented Software Construction》第2版读后感
  • 《机器学习》 SVM支持向量机 推导、参数解析、可视化实现
  • 高效能低延迟:EasyCVR平台WebRTC支持H.265在远程监控中的优势
  • react中的useCallback、useMemo、useRef 和 useContext
  • 京存分布式赋能EDA应用
  • 安卓中回调函数的使用
  • 一文读懂红鲸音视频SDK
  • 程序员职业转型难题解析:为何不尝试投身大模型开发的新赛道?
  • 区块链(币圈)常用网址大全
  • Java-BatchProcessingUtil结合CompletableFuture工具类