当前位置: 首页> 汽车> 维修 > 中国最顶尖的广告设计公司_东莞营销公司_中国新闻_株洲网站建设

中国最顶尖的广告设计公司_东莞营销公司_中国新闻_株洲网站建设

时间:2025/7/12 5:29:04来源:https://blog.csdn.net/pouop/article/details/146005628 浏览次数: 1次
中国最顶尖的广告设计公司_东莞营销公司_中国新闻_株洲网站建设

一,POSIX线程信号量

信号量的本质就是一个计数器,也是对资源的预定机制,POSIX信号量和SystemV信号量作⽤相同,都是⽤于同步操作,达到⽆冲突的访问共享资源⽬的。但 POSIX可以⽤于线程间同步。

1,初始化信号量

参数:

sem:传入sem_t类型数据

pshared:0表⽰线程间共享,⾮零表⽰进程间共享

value:信号量初始值

2,销毁信号量

3,等待信号量

4,发布信号量

二,基于环形队列的⽣产消费模型

基础理论:

上一次⽣产者-消费者的例⼦是基于queue的,其空间可以动态分配,现在基于固定⼤⼩的环形队列重写这 个程序(POSIX信号量):

其中head代表消费者,tail代表生产者,每个格子用信号量表示,在默认的情况下,全空或者全满的时候指向同一个位置。

任何人在访问资源之前都必须申请信号量:
对生产者来讲:剩余空间

对消费者来讲:剩余数据

我们先拿单生产单消费来描述条件:

1,消费者,生产者同时访问同一个位置:

        1.1,为空

                保证生产者,原子性先生产

        1.2   为满

                保证消费者,原子性先消费

2,非情况一情况

        生产者和消费者一定不在同一个位置

        消费者和生产者可不可以同时进行并发访问?

总结:

1,无法套一个圈

2,消费者无法超过生产者

3,同一个位置,互斥同步

4,在不同位置,并发

代码实现:

关键字:中国最顶尖的广告设计公司_东莞营销公司_中国新闻_株洲网站建设

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: