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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 5413 | 回復(fù): 6
打印 上一主題 下一主題

如何讓線程創(chuàng)建后立即運(yùn)行,我用的方法是否正確? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-04-08 10:40 |只看該作者 |倒序?yàn)g覽
            pthread_t           tmp_thr;
            pthread_attr_t      tmp_attr;
            struct sched_param  tmp_sch;
            pthread_attr_init ( &tmp_attr );
            pthread_attr_setdetachstate ( &tmp_attr, PTHREAD_CREATE_DETACHED );

            pthread_create ( &tmp_thr, &tmp_attr, &ProcessThread, pa );

            tmp_sch.sched_priority = 1;
            pthread_setschedparam ( tmp_thr, SCHED_FIFO, &tmp_sch );
            pthread_attr_destroy ( &tmp_attr );
            //pthread_detach ( tmp_thr );


我在守護(hù)程序中大量創(chuàng)建線程時(shí)發(fā)現(xiàn) pthread_create 會(huì)卡住, 這個(gè)情況在30個(gè)客戶端請(qǐng)求的時(shí)候就可以重現(xiàn).在改成以上的代碼后,線程不會(huì)再卡住.這里用到的一些東西以前沒(méi)接觸過(guò),APUE里也沒(méi)講怎么讓線程創(chuàng)建后立即執(zhí)行. 有什么不正確的請(qǐng)指點(diǎn)一下...

[ 本帖最后由 我learnc 于 2009-4-8 10:45 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-04-08 10:53 |只看該作者
你創(chuàng)建一個(gè)或者若干個(gè)線程后,它們就開(kāi)始和主線程爭(zhēng)奪進(jìn)程的CPU時(shí)間了。。。
所以,如果你循環(huán)創(chuàng)建大量線程時(shí),那么肯定會(huì)“卡”住的

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-04-08 10:55 |只看該作者

回復(fù) #1 我learnc 的帖子

不知道樓主大大怎么會(huì)這樣。
小弟創(chuàng)建上百個(gè)線程都沒(méi)事。
另外。小弟的經(jīng)驗(yàn),如果需要?jiǎng)?chuàng)建很多線程,最好提前創(chuàng)立好,不要頻繁創(chuàng)建銷(xiāo)毀。
也就是所謂的線程池,把你的任務(wù)均勻的分配給他們。
通常認(rèn)為,線程池為了減少創(chuàng)建線程的時(shí)間開(kāi)銷(xiāo)。
不過(guò)小弟覺(jué)得,更大的好處是,減少了出錯(cuò)的風(fēng)險(xiǎn),如果創(chuàng)建線程時(shí)出錯(cuò),剛開(kāi)始就知道,好控制。
至于參數(shù),主要是利用創(chuàng)建線程函數(shù)時(shí)的參數(shù),或者直接用全局的變量,起到控制線程,傳遞參數(shù)的目的。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-04-08 11:04 |只看該作者

回復(fù) #2 alexhappy 的帖子

卡的時(shí)間很長(zhǎng),不是卡一兩秒,是卡住就不動(dòng)了.幾分鐘以上. 我用的是

Linux debian.switch.dsm 2.6.18-6-686 #1 SMP Fri Dec 12 16:48:28 UTC 2008 i686 GNU/Linux

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-04-08 11:19 |只看該作者
那你先這樣試試:在每個(gè)子線程的第一句加上個(gè)Sleep(5);

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-04-08 11:28 |只看該作者

回復(fù) #5 alexhappy 的帖子

這不能從根本上解決問(wèn)題.我寫(xiě)個(gè)線程池再跑跑吧.

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-04-08 13:11 |只看該作者

回復(fù) #1 我learnc 的帖子

這段代碼一點(diǎn)問(wèn)題都沒(méi)有,建議你到同事的機(jī)器上,就是換個(gè)別的系統(tǒng),重編一下試試
您需要登錄后才可以回帖 登錄 | 注冊(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)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP