Linux之线程互斥量与锁(mutex)

主要内容:
(1)互斥量及如何使用
(2)什么是死锁,如何解决
(3)什么是读写锁,如何使用

(4)条件变量实现的生产消费者模型
(5)信号量实现的生产消费者模型

1.线程同步
协调步骤,顺序执行。解决同步的问题:加锁!
数据混乱的原因:

  • 资源共享(独享资源则不会);
  • 随机调度(意味着数据访问会出现竞争);
  • 线程间缺乏必要的同步机制。(解决该点最为可行)

2.mutex互斥量
两个线程访问同一块共享资源,如果不协调顺序,容易造成数据混乱。解决方法:加锁–mutex

  • pthread_mutex_init 初始化
  • pthread_mutex_destroy 摧毁
  • pthread_mutex_lock 加锁
  • pthread_mutex_unlock(pthread_mutex_t *mutex) 解锁

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

  • restrict 约束该块内存区域对应的数据,只能通过后面的变量进行访问和修改
  • mutex 互斥量–锁
  • attr 互斥量的属性,可不考虑,传NULL

互斥量的使用步骤&

上一篇:2020/12/17 ubuntu16.04 NTP时间同步配置


下一篇:随机点名器