怎樣讓掛起的線程自動(dòng)喚醒?
GetMessage是異步調(diào)用,等待它的線程會(huì)被操作系統(tǒng)掛起。掛起后該線程是沒有機(jī)會(huì)執(zhí)行任何代碼的,這一點(diǎn)要搞懂。
操作系統(tǒng)中有很多方法來管理多個(gè)等待與依賴關(guān)系,不是你想的一句話 中斷 就能解決問題。這是操作系統(tǒng)中核心的也是很復(fù)雜的地方。
你可以簡單的理解為每一個(gè)可等待的事件,都有一個(gè)列表記錄其等待者,當(dāng)事件發(fā)生時(shí)依次遍歷列表逐個(gè)調(diào)用。類似于設(shè)計(jì)模式中的觀察者模式。
你所說的100%什么的是最最簡單原始的輪詢機(jī)制,當(dāng)然你還知道中斷機(jī)制,只是管理線程間的依賴方式的手段太多了。