客户端future.get()阻塞住了,是哪个线程阻塞住了?

来源:8-7 客户端实现

红嘴鲤鱼

2020-11-15

服务端执行回调函数的是AsyncronousServerSocketGroup,类似一个线程池,那么客户端这里,future对象的get方法阻塞,是哪个线程被阻塞了呢?其次,本来nio要解决的问题就是从阻塞变成非阻塞,到了AIO这里,虽然同步变异步,但是又变回阻塞模型了,性能岂不是更差了? 求老师解惑

写回答

1回答

Stannum

2020-11-16

同学你好~请注意在这个例子中,我们主要是为了给大家演示两种不同的处理AIO异步操作的方法,在服务器端我们实现了回调函数,在客户端则使用了future对象。但是在实际应用中,你完全可以根据自己的应用需要,去选择最适合你的实现方法。比如说,你完全可以在客户端也使用回调函数来实现非阻塞的操作。即使使用future对象,也可以通过调用isDone函数来避免get函数的阻塞式调用。这里课程的例子是给大家尽量全面的展示各种操作的可能性。但是请你在实际应用中,一定要选择最适合你的实现方式~

0
0

系统学习Java网络编程 深度理解BIO/NIO/AIO

对比式学习助你真正理解BIO/NIO/AIO三大网络编程模型。

880 学习 · 148 问题

查看课程