[問題] sleep VS pthread_yield
Linux
問題(Question):
最近在寫程式時,平常習慣無限回圈的程式會call一個usleep,
但是看到有同事是使用pthread_yield,查了一下man
看不太出來差別,想要問一下版上大大們有沒有人知道差別
或者兩者分別是怎麼 implement之類的?
補充說明(Supplement):
<底下是我另外的問題 跟 Coding無關,如果有大大知道也麻煩回答一下,感恩>
最近在想一個問題
恐龍本的 Process State Machine 應該有五個
分別是
New, Ready(載入記憶體中), Run(搶到CPU),
Block (I/O 或者被 OS 搶走CPU) , Terminated(Normal 結束 或是有異常發生)
今天如果有一個Thread搶到CPU之後再Call Sleep
那在他Sleep 的這段時間,Process的狀態會是
1. Ready
2. Run (還是佔住CPU,等時間到再繼續執行)
3. Block (先Blocked 住,等Timer結束之後再發一個Interrupt把他叫醒)
請問大家覺得比較是哪一種可能?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.23.188.78
推
08/08 13:37, , 1F
08/08 13:37, 1F
→
08/08 18:01, , 2F
08/08 18:01, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):