推 james732:1. 當然不會,thread1會睡滿五秒 05/27 22:32
→ james732:2. 即使沒有sleep,每個 thread 能使用的 CPU 時間有限 05/27 22:32
→ james732: 時間到了就一定會強制換人做 05/27 22:32
→ james732:3. 是 sleep 的時間才對,blocking 並不會佔用 CPU 05/27 22:33
→ hilorrk:除非你用的OS是non-preemptionXD 05/27 22:34
→ hn12303158:謝謝回覆, 那請問當thread2也睡下去時 05/27 22:51
→ hn12303158:假如thread1的5秒還沒到, 那此時是沒有thread可以使用 05/27 22:52
→ hn12303158:cpu嗎? 05/27 22:52
→ hn12303158:另外, 關於問題2,其實我也知道time slice和round robin 05/27 22:53
→ hn12303158:的概念, 但假如我在thread1中無限迴圈的列印字句, 05/27 22:54
→ hn12303158:且沒有給他sleep(), 我發現他就一直印下去了.... 05/27 22:55
→ hn12303158:難道一個thread的time slice真的這麼長 @.@" 05/27 22:55
→ james732:你的電腦並不是只有兩個 thread 在執行啊...XDD 05/27 22:57
→ james732:至於問題二,你要印多一點才會比較明顯,記得刷緩衝區 05/27 22:58
→ hilorrk:只是switch速度快到你反應不過來而已..不是一個slice很長 05/27 22:58
→ tinlans:老實說我是第一次聽說用了 pthread 還用 I/O multiplex, 05/27 22:59
→ tinlans:雖然沒人說不可以,但我也不確定這樣玩會發生什麼事。 05/27 22:59
→ hilorrk:就算只有兩個thread 都沒在跑時通常也會跑OS的idle task 05/27 22:59
→ james732:其實我也試過 pthread + select, 因為需要極大量連線 XDD 05/27 23:00