请选择 进入手机版 | 继续访问电脑版

雨滴科技技术论坛

 找回密码
 立即注册
查看: 96|回复: 2

信号量

[复制链接]

55

主题

230

帖子

1461

积分

金牌会员

Rank: 6Rank: 6

积分
1461
扫一扫,手机访问本帖
发表于 2019-5-12 19:56:56 | 显示全部楼层 |阅读模式

信号量(semaphore)是用于保护临界区的一种常用方法,只有得到信号量的进程才能执行临界区代码。
当获取不到信号量时,进程进入休眠等待状态。

1.定义信号量
  1. struct semaphore sem;
复制代码
2.初始化信号量
  1. void sema_init (struct semaphore *sem, int val);

    void init_MUTEX(struct semaphore *sem);//初始化为0


  2. static DECLARE_MUTEX(button_lock);     //定义互斥锁

复制代码


3.获得信号量
  1. void down(struct semaphore * sem);

    int down_interruptible(struct semaphore * sem);

    int down_trylock(struct semaphore * sem);

复制代码
4.释放信号量
  1. void up(struct semaphore * sem);

复制代码


回复

使用道具 举报

54

主题

303

帖子

976

积分

高级会员

Rank: 4

积分
976
发表于 2019-5-12 22:31:32 | 显示全部楼层
                                         
回复 支持 反对

使用道具 举报

195

主题

858

帖子

4145

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4145
发表于 2019-5-13 10:34:07 | 显示全部楼层
不错   
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
在线咨询
咨询热线
0755-26787502-8006/8016
扫一扫二维码
直接访问本站

QQ|Archiver|手机版|小黑屋|雨滴科技  

GMT+8, 2019-7-21 16:36 , Processed in 0.060130 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表