NIO通讯中connect()方法和finishConnect()方法的区别

一、对于阻塞模式下,调用connect()进行链接操做时,会一直阻塞到链接创建完成(无链接异常的状况下)。因此能够不用finishConnect来确认。blog

二、但在非阻塞模式下,connect()操做是调用后直接返回结果的,有多是true(如本地链接),也多是false(在部分状况下是false)。因此为了肯定后续IO操做正常进行需等待链接的创建,这时finishConnect的做用就出来了。能够阻塞到链接创建好。io

另外,Channel的链接操做,须要先进行connect()后才能调finishConnect,若是直接调用finishConnect会出现NoConnectionPendingException异常。这个须要注意下。im

相关文章
相关标签/搜索