亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3510 | 回復(fù): 11
打印 上一主題 下一主題

[C++] 線程同步相關(guān)問題 [復(fù)制鏈接]

論壇徽章:
7
摩羯座
日期:2013-12-05 10:42:57辰龍
日期:2013-12-27 13:40:49亥豬
日期:2014-01-15 09:10:37天秤座
日期:2014-01-20 11:22:20辰龍
日期:2014-01-26 17:02:25午馬
日期:2014-01-27 14:22:34水瓶座
日期:2014-02-19 09:36:40
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-11-13 16:28 |只看該作者 |倒序?yàn)g覽
本帖最后由 kdkgod 于 2015-11-13 17:12 編輯

場(chǎng)景是這樣的,
thread()
{
  while (1) {
   while (readdata() == success) {
      //正常業(yè)務(wù)邏輯
   }
    //現(xiàn)在沒有數(shù)據(jù)處理時(shí)直接sleep 1 ms,如果sleep時(shí)間過長(zhǎng),會(huì)可能導(dǎo)致數(shù)據(jù)積壓,如果sleep時(shí)間過短,就會(huì)cpu占用過高,
   除了信號(hào)量 有沒有其他的辦法,
  }
}

-----------------------------------------
今天將sleep 1ms改成用信號(hào)量,發(fā)現(xiàn)cpu占用比之前高了. 說明一下,每秒收到的包還是挺多的,1s應(yīng)該有近1w條.

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2015-11-13 16:45 |只看該作者
個(gè)人認(rèn)為讀數(shù)據(jù)接口應(yīng)該交給內(nèi)核去處理。具體地講,就是有數(shù)據(jù)時(shí),內(nèi)核會(huì)通知應(yīng)用程序(比如epoll)去處理事情,沒有數(shù)據(jù)時(shí)就阻塞,系統(tǒng)資源被操作系統(tǒng)回收,處理其它事情。關(guān)鍵在于設(shè)置為阻塞式。

論壇徽章:
7
摩羯座
日期:2013-12-05 10:42:57辰龍
日期:2013-12-27 13:40:49亥豬
日期:2014-01-15 09:10:37天秤座
日期:2014-01-20 11:22:20辰龍
日期:2014-01-26 17:02:25午馬
日期:2014-01-27 14:22:34水瓶座
日期:2014-02-19 09:36:40
3 [報(bào)告]
發(fā)表于 2015-11-13 16:48 |只看該作者
.................

從哪看出來是socket啦
回復(fù) 2# coolmoon_133319


   

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2015-11-13 16:52 |只看該作者
猜的哈,一般網(wǎng)絡(luò)程序這樣子寫的多。

非socket也沒關(guān)系嘛,可以設(shè)置為阻塞式。

論壇徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16賽季CBA聯(lián)賽之江蘇
日期:2017-11-27 11:42:3515-16賽季CBA聯(lián)賽之八一
日期:2017-04-12 14:26:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-08-20 10:43:1215-16賽季CBA聯(lián)賽之廣夏
日期:2016-06-23 09:53:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-02-11 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-02-09 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2015-12-25 16:40:3515-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-22 09:39:36程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-24 06:20:002015亞冠之德黑蘭石油
日期:2015-08-07 09:57:302015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報(bào)告]
發(fā)表于 2015-11-13 17:02 |只看該作者
pthread_cond_t

論壇徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16賽季CBA聯(lián)賽之江蘇
日期:2017-11-27 11:42:3515-16賽季CBA聯(lián)賽之八一
日期:2017-04-12 14:26:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-08-20 10:43:1215-16賽季CBA聯(lián)賽之廣夏
日期:2016-06-23 09:53:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-02-11 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-02-09 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2015-12-25 16:40:3515-16賽季CBA聯(lián)賽之廣夏
日期:2015-12-22 09:39:36程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-24 06:20:002015亞冠之德黑蘭石油
日期:2015-08-07 09:57:302015年辭舊歲徽章
日期:2015-03-03 16:54:15
6 [報(bào)告]
發(fā)表于 2015-11-13 17:05 |只看該作者
回復(fù) 3# kdkgod


    其實(shí)也可以用socket,producer把data enqueue,然后通知consumer,consumer在socket接收函數(shù)里面dequeue

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
7 [報(bào)告]
發(fā)表于 2015-11-14 10:19 |只看該作者
本帖最后由 yulihua49 于 2015-11-14 10:25 編輯
lxyscls 發(fā)表于 2015-11-13 17:02
pthread_cond_t

正解!

//消費(fèi)者
pthread_mutex_lock(&mux)
while(NULL==(ptr=get_data())){
        pthread_cond_wait(&cond,&mux);
}
pthread_mutex_unlock(&mux)

// 生產(chǎn)者
pthread_mutex_lock(&mux)
put_data();
pthread_mutex_unlock(&mux)
pthread_cond_signal(&cond);

這個(gè)模型可以多對(duì)多。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2015-11-14 13:15 |只看該作者
其實(shí)大部分情況下,CPU占用都不會(huì)高的,sleep 1ms或者10ms很好用的,cpu多耗5%根本不是事,

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
9 [報(bào)告]
發(fā)表于 2015-11-14 15:33 |只看該作者
本帖最后由 yulihua49 于 2015-11-14 15:33 編輯
drangon 發(fā)表于 2015-11-14 13:15
其實(shí)大部分情況下,CPU占用都不會(huì)高的,sleep 1ms或者10ms很好用的,cpu多耗5%根本不是事,

響應(yīng)速度1ms就意味著每秒只能1000個(gè)事物,你能容忍就行。

論壇徽章:
7
巨蟹座
日期:2015-07-09 16:10:34未羊
日期:2015-07-09 16:11:49數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-05 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-03-28 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-11 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-22 06:20:00
10 [報(bào)告]
發(fā)表于 2015-11-16 11:36 |只看該作者
這個(gè)明顯采用線程的掛起與**啊。不需要操作的時(shí)候就使用pthread_cond_t與鎖配合將線程掛起,等有需要的時(shí)候就發(fā)送一個(gè)信號(hào)給此掛起的線程繼續(xù)執(zhí)行。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP