关于非阻塞通信编程的问题
最近在研究非阻塞通信socket编程,有个问题不明白~
如果某个SocketChannel对象sc,像某个Selector对象selector注册了READ和WRITE事件,然后调用selector.select()监听事件,书上说当写就绪(writeable)或者读就绪(readable)的时候,select()方法才返回,然后进行判断,再进行发送或者读取,可是系统是怎么知道已经进入写就绪状态或者读就绪状态呢?实际中也没有像单击按钮这样的动作来触发事件啊~~一直想不明白~~~~请赐教~~~~
另外,对于高并发量的应用,是用非阻塞,还是用线程池,那个更有效率?