看板 LinuxDev 關於我們 聯絡資訊
假設有一個process, 如果它執行down(struct semaphore *sem)時, 發現權杖被其它process拿走了, 那這個process它之後休眠時, 會休眠到什麼時候呢? 是不是只要其他process把權杖釋放出來了, 它就會馬上醒過來呢? 如果是這樣的話, 那struct semaphore跟struct completion有什麼不一樣呢? completion是process離開critical section,把鎖解開之後, 就通知正在等待的process, 感覺這跟semaphore一樣都是休眠到其它process把鎖解開. 請問struct semaphore跟struct completion的不一樣地方在哪兒呢? 什麼情況下使用completion會比semaphore還要好呢? 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.18.139
heoris:http://0rz.tw/b6G3E 有解釋為何要實作completion 04/07 13:16
heoris:在某些條件下,completion使用上會比semaphore來的有效率 04/07 13:17
larkes:收到~謝謝喔~ 04/08 11:05