信号量学习

技术信号量学习 信号量学习(一)概念信号量是一个整数,这个整数允许多进程或多线程同步他们的操作。这个整数必须大于等于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)

相关推荐

  • 什么是RDB和AOF

    技术什么是RDB和AOF这篇文章主要介绍“什么是RDB和AOF”,在日常操作中,相信很多人在什么是RDB和AOF问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是RDB和AOF”的疑惑有

    攻略 2021年10月22日
  • Java数据结构---稀疏数组

    技术Java数据结构---稀疏数组 Java数据结构---稀疏数组稀疏数值的基础概念(图示)◆当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。◆稀疏数组的处理方式是:◆记

    礼包 2021年11月25日
  • OsgEarth开发笔记,四):Qt5.15.2在QtCreator集成Osg3.6.3+OsgEarth3.1+OsgQt的vs2019x64版本开发环境搭建

    技术OsgEarth开发笔记,四):Qt5.15.2在QtCreator集成Osg3.6.3+OsgEarth3.1+OsgQt的vs2019x64版本开发环境搭建 OsgEarth开发笔记(四):Qt

    礼包 2021年12月24日
  • Python代码列表怎么求并集,交集,差集

    技术Python代码列表怎么求并集,交集,差集本篇内容介绍了“Python代码列表怎么求并集,交集,差集”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希

    攻略 2021年11月12日
  • oraclepdb库(oracle跨pdb互访)

    技术Oracle怎么实现跨平台传输PDB本篇内容主要讲解“Oracle怎么实现跨平台传输PDB”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle怎么实现跨平台传输PD

    攻略 2021年12月21日
  • ORACLE中表空间和表碎片的示例分析

    技术ORACLE中表空间和表碎片的示例分析这篇文章主要为大家展示了“ORACLE中表空间和表碎片的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ORACLE中表空间和

    攻略 2021年11月11日