【尚硅谷】Java NIO詳細(xì)教程(一套帶你掌握IO API/javani...

踩坑
1.事件觸發(fā)后必須處理,不處理會select方法會一直有事件存在會一直觸發(fā)。
一種處理是對channel進行讀取,寫入,關(guān)閉操作。
另一種是直接將selectionkey cancel掉。
特別注意的是,當(dāng)客戶端異常斷掉后會發(fā)送一個read事件給服務(wù)端,此時服務(wù)端去read會跑出異常,這個是狗的read不算作處理了事件,所以這種情況必須在異常發(fā)生時關(guān)閉channel或者調(diào)用selectionkey的cancel方法。
2.在觸發(fā)事件時,不能新建線程去處理事件,新建線程處理不認(rèn)可為處理事件,反而是在觸發(fā)新的事件,會觸發(fā)死循環(huán)。
標(biāo)簽: