BIO主要的问题在于每当有一个新的客户端请求接入时,服务端必须创建一个新的线程来处理这条链路,在需要满足高性能、高并发的场景是没法应用的(大量创建新的线程会严重影响服务器性能,使用线程池也是存在问题,如果发生大量并发请求,超过最大数量的线程就只能等待,会一直阻塞)
单线程模型单线程模型会存在如果链接太多,性能可能无法满足,而且如果nio线程出现意外啥的会影响这个系统不可用。
多线程模型多线程模型一般场景都满足了,但是在特别高的并发,以及一些非常消耗性能的验证等,会存在一些不足之处。
主从多线程模型主从多线程模型,通过mainReactor线程、subReactor线程继续拆分,mainReactor线程负责一些客户端TCP连接请求预处理(验证等),subReactor线程处理真正的IO。
参考:
本人水平有限,难免会有一些理解偏差的地方,如果发现,欢迎各位积极指出,感谢!!!
如果读完觉得有收获的话,欢迎点赞、关注、加公众号【匠心零度】,查阅更多精彩历史!!!