【Linux学习笔记46】线程的同步(POSIX匿名信号量)

引言

之前也记录过POSIX有名信号量的使用,那么POSIX有名信号量主要用于进程之间通信【Linux学习笔记42】进程间的通信(四)(POSIX有名信号量)
那么,这一篇笔记主要是记录线程之间的POSIX匿名信号量。为了实现线程之间的同步,可以使用POSIX匿名信号量来实现。

POSIX有名与匿名信号量的区别

  • POSIX有名信号量会使用指针使用sem_open函数打开系统中的文件,即POSIX有名信号量存在于文件系统,所有进程可见。
  • 线程存在与进程之中,所有线程都存在于同一空间中,可以访问同一信号量,因此不需要名字也可以访问,因此线程使用匿名信号量。

代码的实现

以下面为例:
有两条线程s1,s2
t1负责接收键盘数据,写入Buf
t2负责读出buf中的数据,并且计算其字节数。
使用变量sem_t s1代表buf资源,s1=1为有资源,s1=0为无资源。
使用变量sem_t s2代表数据,s2=1为有数据,s2=0为无数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了91 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/RayCongLiang/article/details/100178815
今日推荐