信号量学习

技术信号量学习 信号量学习(一)概念信号量是一个整数,这个整数允许多进程或多线程同步他们的操作。这个整数必须大于等于0.
linux库函数中,类似有名映射、匿名映射,有名管道、无名管道,信号量也有有名信

信号量学习

(一)概念

信号量是一个整数,它允许多个进程或线程同步它们的操作。该整数必须大于或等于0。

在linux库函数中,有类似的命名映射、匿名映射、命名管道和未命名管道。信号量也有命名信号量和匿名信号量。匿名信号量在内存中,而不是在文件系统中,通常用于线程之间的同步。命名信号量需要创建文件,这些文件通常用于进程之间的同步。命名信号量请参见:命名信号量。

(2)匿名信号量库函数

#包含信号量. h

int sem_init(sem_t *sem,int pshared,无符号int值);

函数:初始化一个匿名信号量。

参数:

Sem指定要初始化的信号量的地址。

P 0多线程非0多进程

值指定信号量的初始值。

返回值:

0成功

错误-设置了1个错误号

#包含信号量. h

int SEM _ destroy(SEM _ t * SEM);

函数:破坏了一个匿名信号量。

参数:

Sem指定要销毁的匿名信号量的地址

返回值:

0成功

错误-设置了1个错误号

#包含信号量. h

int SEM _ post(SEM _ t * SEM);

函数:给信号量的值加1。如果它变得大于0。如果等待信号量值变得大于0的进程或线程被唤醒,继续从信号量值中减去1。

参数:

Sem指定了特定的信号量

返回值:

0成功

错误-1 errno被设置为相同的信号量值。

#包含信号量. h

int SEM _ wait(SEM _ t * SEM);

如果当前信号的值大于0,继续立即返回。

如果当前信号量值等于0。阻塞,直到信号量值大于0。

参数:

Sem指定了特定的信号量

返回值:

0成功

错误-1 errno被设置为相同的信号量值。

int SEM _ try wait(SEM _ t * SEM);

功能:尽量不阻塞等待。

int sem_timedwait(sem_t *sem,const struct time spec * ABS _ time out);

功能:与时间一起等待

参考博客:https://blog.csdn.net/u013511885/article/details/03116998 UTM _ medium=distribute . PC _ agg page _ search _ result . none-task-blog-2 ~聚合页面~ first _ rank _ ecpm _ v1 ~ rank _ v31 _ ecpm-3-103116998 . PC _ agg _ new

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/117954.html

(0)

相关推荐

  • 怎么拒绝软件启动时sql server报错(sqlserver2008实例已存在怎么办)

    技术如何解析由于启动用户实例的进程时出错导致无法生成SQL Server的用户实例今天就跟大家聊聊有关如何解析由于启动用户实例的进程时出错导致无法生成SQL Server的用户实例,可能很多人都不太了解,为了让大家更加了

    攻略 2021年12月14日
  • sqliteinsert影响什么(sqliteupdate和insert性能)

    技术SQLite中特殊的INSERT语句怎么用小编给大家分享一下SQLite中特殊的INSERT语句怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SQLite中特殊的INSERT语句在SQLite

    攻略 2021年12月18日
  • express框架

    技术express框架 express框架Express框架
    Express简化了关于NodeJS应用的开发
    官网地址:https://www.expressjs.com.cn/使用npm instal

    礼包 2021年10月19日
  • Jscript中有哪些内部对象

    技术Jscript中有哪些内部对象小编给大家分享一下Jscript中有哪些内部对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!内部对象  M

    攻略 2021年11月30日
  • 光影精灵,光影精灵和暗影精灵的区别是什么

    技术光影精灵,光影精灵和暗影精灵的区别是什么区别1光影精灵:定位首先,光影精灵5和暗影精灵5最直观的区别就是两者的设计风格完全不同,这个不需要什么分析,也不需要懂产品,只要是有认知能力的人看到图片都会得出这样的结论。两者

    生活 2021年10月22日
  • mapboxgl源码分析(mapboxgl 是否开源)

    技术mapbox-gl开发中如何集成deck.gl小编给大家分享一下mapbox-gl开发中如何集成deck.gl,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! deck.gl是由uber开发出来的

    攻略 2021年12月22日