色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 信號量的使用和注意事項

信號量的使用和注意事項 時間:2018-08-09      來源:未知

信號燈(信號量)集

POSIX 線程中的同步用的是無名信號量

進程間的同步使用的是IPC 對象[信號燈集]

信號燈集:信號燈集合,每一個信號燈都可以用來表示一類資源,其值表示資源的個數

(1)創建信號燈集

int semget(key_t key, int nsems, int semflg);

參數:

@key IPC_PRIVATE , ftok()

@nsems 信號燈集中信號燈的個數

@semflg IPC_CREAT | 0666,IPC_CREAT | IPC_EXCL

返回值:

成功返回ID,失敗返回-1

(2)初始化信號燈集中信號燈的值

int semctl(int semid, int semnum, int cmd, ...);

參數:

@semid 信號燈集的ID

@semnum 信號燈的編號[編號從0開始]

@cmd SETVAL[設置信號燈的值] ,GETVAL(獲取信號燈的值),IPC_RMID[刪除信號燈集]

返回值:

成功返回0,失敗返回-1

思考:將信號燈集中的1號信號燈初始化為1?

union semun {

int val; /* Value for SETVAL */

struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */

unsigned short *array; /* Array for GETALL, SETALL */

struct seminfo *__buf; /* Buffer for IPC_INFO

(Linux-specific) */

};

void init_sem_value(int sem_id,int sem_num,int value)

{

union semun sem_val;

sem_val.val = value;

if(semctl(sem_id,sem_num,SETVAL,sem_val) < 0)

{

...

}

return ;

}

(3)PV操作

int semop(int semid, struct sembuf *sops, unsigned nsops);

功能:完成PV操作

參數:

@semid 信號燈集的ID

@sops 操作方式結構體首地址

@nsops 操作信號燈的個數

返回值:

成功返回0,失敗返回-1

struct sembuf

{

unsigned short sem_num; /* semaphore number */

short sem_op; /* semaphore operation */

short sem_flg; /* operation flags */

};

sem_op :

<1>0 等待信號燈的值變成0

<2>1 釋放資源,V操作

<3>-1 申請資源,P操作

sem_flg:

0 : 阻塞方式

IPC_NOWAIT : 非阻塞方式調用

SEM_UNDO : 進程結束的時候,它申請的資源自動釋放

void P(int sem_id,int sem_num)

{

struct sembuf sem;

sem.sem_num = sem_num;

sem.sem_op = -1;

sem.sem_flg = 0;

if(semop(sem_id,&sem,1) < 0)

{

....

}

}

void V(int sem_id,int sem_num)

{

struct sembuf sem;

sem.sem_num = sem_num;

sem.sem_op = 1;

sem.sem_flg = 0;

if(semop(sem_id,&sem,1) < 0)

{

....

}

}

練習:A,B通過信號燈集同步對共享內存操作

讓創建信號燈集的進程,初始化信號燈的值 ,如果信號燈集已經存在則不初始化

sem_id = semget(key,2,IPC_CREAT | IPC_EXCL | 0666);

if(sem_id < 0)//信號燈集已經,不初始化信號燈值

{

sem_id = semget(key,2,IPC_CREAT | 0666);

}else{

//初始化信號燈集中信號燈的值

}

上一篇:分頻器設計原理淺析

下一篇:TFT-LCD常用接口分類

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 免费观看欧美日韩亚洲 | 做爰爽全过程免费的看 | 狠狠躁夜夜人人爽天96 | 91精品国产自产在线观看不卡 | 欧美a级成人网站免费 | 国产成人一区二区无码不卡在线 | 无码欧美熟妇人妻影院欧美潘金莲 | 亚洲区欧美区综合区自拍区 | 日日噜噜夜夜狠狠久久蜜桃 | 久久视频这里只精品6国产 2022国产爱性原创视频 | 精品人妻伦九区久久AAA片69 | 无码射肉在线播放视频 | 老头边吃奶边弄进去呻吟 | 天天做天天爱天天综合网 | 最近免费中文字幕 | 大地网资源在线观看免费高清 | 亚洲精品国产精品无码国模 | 久久青青草原精品国产 | 麻豆蜜桃国产精品无码视频 | 久草热久草在线视频 | 舔高中女生奶头内射视频 | 无遮无挡爽爽免费视频 | 男人把大JI巴放进女人视频 | 亚洲国产三级在线观看 | 日本少妇做爰全过程毛片 | 亚洲AV色噜噜男人的天堂 | 日本视频免费在线观看 | 亚洲欧美中文日韩v在线观看不卡 | 欧美老妇与禽交 | 成本人h无码播放私人影院 在线精品自偷自拍无码 | 久久久久久成人综合网 | 欧美性猛交XXXX乱大交 | A片无码AV看免费大片在线 | 天天综合网久久综合免费人成 | 国产三级韩国三级日产三级 | 国产普通话刺激视频在线播放 | 成人影片麻豆国产影片免费观看 | 被债主在夫面前人妻被强 | 亚洲日韩精品AV无码富二代 | 无人高清影视在线观看 | 日韩精品久久久肉伦网站 |