Java-关于阻塞socket和非阻塞socket的问题
socket协议非为2种,阻塞型socket和非阻塞型socket,对于这2种socket大家有什么自己的认识?可有什么利弊?在项目中如何选择合适的socket的呢?百度过来复制粘贴的,就别写了,挺没劲的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我觉得你还是要搞清楚 为什么会出现NIO ,这才是根本,在NIO没出现前,银行的Java Socket也不是你那样用的。SocketServer只负责连接建立和分发,有对应的后续处理线程处理逻辑和其他,非一直要等到处理完后再循环。
简单的说,阻塞就是你干不完不准回来;非组赛就是你先干着,我现看看有其他事没有,你干完了告诉我一声我再干。
阻塞模式和非阻塞模式的主要区别在于无请求来到时,阻塞模式会一直停在接收函数即accep函数,直到有请求到来才会继续向下进行处理,表现在程序中,也就是该程序一直阻塞在该函数调用处不能继续往下执行。而非阻塞模式下,运行接收函数,如果有请求,则会接收请求,如果无请求,会返回一个负值,并继续向下运行。
实际项目应中,如果你下面的事情需要用到前面事情的结果,这样就用阻塞模式;相反前面事情和后面的事情并没有关联的话,用非阻塞模式。
阻塞就是同步操作
非阻塞就是异步操作
更多的就太多了