开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>

我今天做了一下测试,发现不执行socketChannel.register(selector, SelectionKey.OP_WRITE);我一样可以往channel里面写入数据。这我就奇怪了,jdkapi上面说(我理解的)这个注册是要生成一个key,说明该通道的write已经准备就绪。那么,我的问题是:如果根本不需要注册OP_WRITE就可以往channel中写入数据,那为什么还要注册OP_WRITE呢?为什么在selector.select()方法后面的while循环中,还需要对if(key.isWritable())这种情况单独处理呢?直接写完对方不就收到数据了吗?