作者justinC (無)
看板C_and_CPP
標題Re: [問題] pthread問題
時間Sat Aug 8 13:38:26 2009
→ sunneo:XD" 的確有糟糕的感覺 08/08 11:27
→ sunneo:sleep不是暫停的訊號啊~~他是把current thread suspend 08/08 11:28
→ sunneo:且會有個timer在時間到時把thread resume 08/08 11:29
我是參考下面資料,搞不清楚sleep到底真正行為是怎樣...
除了使用 delay 來達成同步的效果外,另一個錯誤發生在 sleep 系統呼叫;如同
exit 對 process 的影響一樣,
當 thread 呼叫 sleep 時,講導致整個 process 停下
來。這表示所有屬於這個 process 的 thread 也將跟著停頓下來。因此在上面這個程
式中,呼叫 sleep 除了平白讓程式慢了20秒,並不會有什麼額外影響。另外一個適用
的函數是 pthread_delay_np (np 表示 not process)。舉例來說,要讓thread 停頓
兩秒鐘,可以用下列程式:
http://gis.nchc.org.tw/lsi/Linux_Basic/discuss/look.asp?id=416&ADMIN=1
還有參考版上12114篇也是這種說法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.128.9.17
※ 編輯: justinC 來自: 140.128.9.17 (08/08 13:43)
推 sunneo:ㄟ害 我這裡的reference在(3p)有兩個版本 08/08 14:21
→ sunneo:應該說有(3)跟(3p),一個是current process,一個是thread 08/08 14:22
→ sunneo:我在我的fedora core 5是得到thread停止的結果 08/08 14:23
→ sunneo:是在POSIX programmer's manual (p) 2003 updated的sleep 08/08 14:25