作者larkes (larkes)
看板LinuxDev
標題[問題] semaphore和completion的比較
時間Fri Apr 6 23:54:55 2012
假設有一個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:在某些條件下,completion使用上會比semaphore來的有效率 04/07 13:17
→ larkes:收到~謝謝喔~ 04/08 11:05