学习笔记之多线程1

同步方式

(1)信号量:线程同步

  • ①p(sv)sem_wait():信号大于0,则减一,信号小于0,则挂起。
  • ②v(sv)sem_post():信号加一,大于0,则其他被p操作阻塞的线程将被唤醒。

(2)互斥量:线程互斥 进程互斥

  • ①进入临界区时获得互斥锁,并加锁,离开临界区时,对互斥锁解锁。

  • ②Pthread_mutex_init:初始化互斥锁。

  • ③Pthread_mutex_destroy:销毁互斥锁。

  • ④Pthread_mutex_lock:以原子操作的方式加锁,若已锁则阻塞。

  • ⑤Pthread_mutex_unlock:以一个原子操作的方式解锁。

(3)条件变量:当共享数据到达某一值时,唤醒等待这个共享数据的一个或多个线程。

  • ①Pthread_cond_init:初始化条件变量。
  • ②Pthread_cond_destroy:销毁条件变量。
  • ③Pthread_cond_signal:唤醒一个等待条件变量的线程。
  • ④Pthread_cond_wait:等待目标条件变量。需要互斥锁保证原子性,wait前解锁,接收到信号加锁。
发布了5 篇原创文章 · 获赞 2 · 访问量 52

猜你喜欢

转载自blog.csdn.net/weixin_41672404/article/details/105655328