關於條件變量的使用,有一種需要注意的情況。
條件變量的原理是:
wait函數將當前線程掛起,加入到等待隊列中。
wake函數將某個或者所有被wait函數掛起的線程復活。
所以,wake執行時一定要保證所有該wait的都已經wait了!!!!!!也就是說被掛在等待隊列中了。
這篇帖子裏有圖:
http://www.cppblog.com/Solstice/archive/2013/09/09/203094.html
關於條件變量的使用,有一種需要注意的情況。
條件變量的原理是:
wait函數將當前線程掛起,加入到等待隊列中。
wake函數將某個或者所有被wait函數掛起的線程復活。
所以,wake執行時一定要保證所有該wait的都已經wait了!!!!!!也就是說被掛在等待隊列中了。
這篇帖子裏有圖:
http://www.cppblog.com/Solstice/archive/2013/09/09/203094.html