Set<SelectionKey> selectionKeys = selector.selectedKeys();這里沒必要?jiǎng)h除,也就沒必要使用迭代器遍歷了,因?yàn)閒or循環(huán)都會生成一個(gè)新的Set對象。如果是在for循環(huán)外聲明并初始化Set<SelectionKey> selectionKeys = new HashSet<~>(),并且for循環(huán)中使用的是selectionKeys.addAll(selector.selectedKeys()),這樣才需要迭代器刪除的吧?請各位大佬不吝賜教。
2019-05-19
每次select(),都應(yīng)該使用一個(gè)空的SelectionKey集合。否則下次Select()再處理,會引起狀態(tài)錯(cuò)誤。所以 在每次的select()后的循環(huán)處理中,將每個(gè)Channel就緒信息刪除,其實(shí)也可以在每次Select()后整體清空SelectionKey集合
2019-05-13