win10控制檯程序printf死鎖問題

昨天遇到一個奇葩的問題,服務器正常運行但常常出現客戶端沒法鏈接的問題。我很好奇,在accept返回的地方斷點,發現沒法accept了。這就怪了,之前從沒出現過這種狀況。服務器網絡用的asio,沒法accept應該就是線程阻塞了,我暫停查看了一下全部線程,發現服務器在收到一個連接的時候,暫停了。暫停的地方是printf,鏈接成功以後寫日誌,順便寫到控制檯了一份,居然在printf暫停了。這。。人與計算機之間最基本的信任呢!!我把線程數量減小到1個,仍然有這個問題,可是關閉printf以後就不會有這個問題了。windows

今天在調試另外一個問題的時候,發現程序的標題有點奇怪。「選擇:xxx.exe」,「選擇」是什麼意思?我仔細一看,原來在win10下面你只要點一下控制檯窗口的內容,就會進入選擇模式,鎖住了屏幕,至關於阻塞了主線程。這用戶體驗作的真到位,windows果真仍是不適合作服務器開發!!
相關文章
相關標籤/搜索