在我的主線程中,我有一個while(listening)調(diào)用accept()我的ServerSocket對象的循環(huán),然后啟動一個新的客戶端線程,并在接受新客戶端時將其添加到Collection。我還有一個Admin線程,我想用它來發(fā)出命令,比如'exit',這將導(dǎo)致所有客戶端線程被關(guān)閉,自行關(guān)閉,并通過轉(zhuǎn)向監(jiān)聽來關(guān)閉主線程。但是,accept()在while(listening)循環(huán)塊中調(diào)用,并且似乎沒有任何方法可以中斷它,因此無法再次檢查while條件并且程序無法退出!有一個更好的方法嗎?或者某種方式來中斷阻塞方法?
3 回答

幕布斯6054654
TA貢獻1876條經(jīng)驗 獲得超7個贊
你可以close()從另一個線程調(diào)用,然后accept()調(diào)用將拋出一個SocketException。
添加回答
舉報
0/150
提交
取消