在了解BIO之后,我们可以很明显地发现其中的问题,那就是BIO模型中,每一个Client的请求发送到Server端后,Server端通过accept接收请求后,必须创建一个clientSocket来进行通信。并且这个通信是阻塞的,一方面,新的clientSocket无法进入(单线程嘛),另一方面,clientSocket是通过流的方式进行通信,而流的通信方式是阻塞的(即没有获得数据是,必须在那里等待)。这两个问题,前者可以如demo中那样,创建一个线程池来解决,而后者是没法解决的。而这样一个多线程+BIO也是很多开发人员的选择,因为这样的实现也十分简单,并且可以满足一定的需求了。
从BIO到Netty的演变 (7)
内容版权声明:除非注明,否则皆为本站原创文章。