浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 通信網(wǎng)絡(luò)

信號(hào)量函數(shù)sem.c

發(fā)布時(shí)間:2012/4/3 0:42:29 訪問(wèn)次數(shù):1531

    MantisOS中下信號(hào)量函數(shù)sem.c,主要調(diào)用了Linux底層的AD736JN信號(hào)量函數(shù)接口semaphore.c來(lái)控制多線程環(huán)境中共享資源的計(jì)數(shù)器。

    信號(hào)量是在多線程環(huán)境中共享資源的計(jì)數(shù)器。對(duì)信號(hào)量的基本操作無(wú)非有3個(gè):對(duì)信號(hào)量的增加;然后阻塞線程等待,直到信號(hào)量不為空才返回;對(duì)信號(hào)量的減少。在編程中,信號(hào)量最常用的方式就是一個(gè)線程A使用sem_wait阻塞,因?yàn)榇藭r(shí)信號(hào)量計(jì)數(shù)為O,直到另外一個(gè)線程B發(fā)出信號(hào)post后,信號(hào)量計(jì)數(shù)加1,此時(shí),線程A得到了信號(hào),信號(hào)量的計(jì)數(shù)為1不為空,所就從sem_wait返回,然后信號(hào)量的計(jì)數(shù)又減1變?yōu)榱。在使用信?hào)量之前,必須對(duì)信號(hào)量進(jìn)行初始化。第三個(gè)參數(shù)通常設(shè)置零,初始化信號(hào)的計(jì)數(shù)為0,這樣第一次伎用sem_wait時(shí)會(huì)因?yàn)樾盘?hào)計(jì)數(shù)為O而等待,直到在其他地方信號(hào)量post才返回(除非用戶明白自己在干什么,否則不要將第三個(gè)參數(shù)設(shè)置為大于0的數(shù))。第二個(gè)參數(shù)是用在進(jìn)程之間的數(shù)據(jù)共享標(biāo)志,如果僅僅使用在當(dāng)前進(jìn)程中,設(shè)置為0。如果要在多個(gè)進(jìn)程之間使用該信號(hào),設(shè)置為非零。但是在Linux線程中,暫時(shí)還不支持進(jìn)程之間的信號(hào)共享,所以第二個(gè)參數(shù)必須設(shè)置為0。當(dāng)信號(hào)的計(jì)數(shù)為零時(shí),sem_wait將休眠掛起當(dāng)前調(diào)用線程,直到信號(hào)量計(jì)數(shù)不為零。在sem_wait返回后信號(hào)量計(jì)數(shù)將自動(dòng)減1。解除信號(hào)量等待限制。讓信號(hào)量計(jì)數(shù)加1,該函數(shù)會(huì)立即返回不等待,F(xiàn)在sem_post被POSIX所規(guī)范,當(dāng)它改變信號(hào)量計(jì)數(shù)器值時(shí)是線程安全的。
    當(dāng)semjnit失敗時(shí),常見錯(cuò)誤有:第三個(gè)參數(shù)value值超過(guò)了系統(tǒng)能夠承受的最大值SEM_VALUE_MAX;將第二參數(shù)設(shè)置為非零,如果是Linux系統(tǒng),則將第二個(gè)參數(shù)設(shè)置為零。

    MantisOS中下信號(hào)量函數(shù)sem.c,主要調(diào)用了Linux底層的AD736JN信號(hào)量函數(shù)接口semaphore.c來(lái)控制多線程環(huán)境中共享資源的計(jì)數(shù)器。

    信號(hào)量是在多線程環(huán)境中共享資源的計(jì)數(shù)器。對(duì)信號(hào)量的基本操作無(wú)非有3個(gè):對(duì)信號(hào)量的增加;然后阻塞線程等待,直到信號(hào)量不為空才返回;對(duì)信號(hào)量的減少。在編程中,信號(hào)量最常用的方式就是一個(gè)線程A使用sem_wait阻塞,因?yàn)榇藭r(shí)信號(hào)量計(jì)數(shù)為O,直到另外一個(gè)線程B發(fā)出信號(hào)post后,信號(hào)量計(jì)數(shù)加1,此時(shí),線程A得到了信號(hào),信號(hào)量的計(jì)數(shù)為1不為空,所就從sem_wait返回,然后信號(hào)量的計(jì)數(shù)又減1變?yōu)榱。在使用信?hào)量之前,必須對(duì)信號(hào)量進(jìn)行初始化。第三個(gè)參數(shù)通常設(shè)置零,初始化信號(hào)的計(jì)數(shù)為0,這樣第一次伎用sem_wait時(shí)會(huì)因?yàn)樾盘?hào)計(jì)數(shù)為O而等待,直到在其他地方信號(hào)量post才返回(除非用戶明白自己在干什么,否則不要將第三個(gè)參數(shù)設(shè)置為大于0的數(shù))。第二個(gè)參數(shù)是用在進(jìn)程之間的數(shù)據(jù)共享標(biāo)志,如果僅僅使用在當(dāng)前進(jìn)程中,設(shè)置為0。如果要在多個(gè)進(jìn)程之間使用該信號(hào),設(shè)置為非零。但是在Linux線程中,暫時(shí)還不支持進(jìn)程之間的信號(hào)共享,所以第二個(gè)參數(shù)必須設(shè)置為0。當(dāng)信號(hào)的計(jì)數(shù)為零時(shí),sem_wait將休眠掛起當(dāng)前調(diào)用線程,直到信號(hào)量計(jì)數(shù)不為零。在sem_wait返回后信號(hào)量計(jì)數(shù)將自動(dòng)減1。解除信號(hào)量等待限制。讓信號(hào)量計(jì)數(shù)加1,該函數(shù)會(huì)立即返回不等待。現(xiàn)在sem_post被POSIX所規(guī)范,當(dāng)它改變信號(hào)量計(jì)數(shù)器值時(shí)是線程安全的。
    當(dāng)semjnit失敗時(shí),常見錯(cuò)誤有:第三個(gè)參數(shù)value值超過(guò)了系統(tǒng)能夠承受的最大值SEM_VALUE_MAX;將第二參數(shù)設(shè)置為非零,如果是Linux系統(tǒng),則將第二個(gè)參數(shù)設(shè)置為零。

熱門點(diǎn)擊

 

推薦技術(shù)資料

耳機(jī)的焊接
    整機(jī)電路簡(jiǎn)單,用洞洞板搭線比較方便。EM8621實(shí)際采... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!