win10控制台程序printf死鎖問題


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

今天在調試另一個問題的時候,發現程序的標題有點奇怪。“選擇:xxx.exe”,“選擇”是什么意思?我仔細一看,原來在win10下面你只要點一下控制台窗口的內容,就會進入選擇模式,鎖住了屏幕,相當於阻塞了主線程。這用戶體驗做的真到位,windows果然還是不適合做服務器開發!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM