[問題] semaphore和completion的比較

看板LinuxDev作者 (larkes)時間13年前 (2012/04/06 23:54), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
假設有一個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

04/07 13:16, , 1F
http://0rz.tw/b6G3E 有解釋為何要實作completion
04/07 13:16, 1F

04/07 13:17, , 2F
在某些條件下,completion使用上會比semaphore來的有效率
04/07 13:17, 2F

04/08 11:05, , 3F
收到~謝謝喔~
04/08 11:05, 3F
文章代碼(AID): #1FVn7HKl (LinuxDev)
文章代碼(AID): #1FVn7HKl (LinuxDev)