美文网首页
高并发知识(四)

高并发知识(四)

作者: 木石前盟_429a | 来源:发表于2020-05-13 23:53 被阅读0次


在Java中,线程(Thread)的合并流程是:假设线程A调用了线程B的B.join方法,合并B线程。那么,线程A进入阻塞状态,直到B线程执行完成。

(1)join是实例方法,不是静态方法,需要使用线程对象去调用,如thread.join()。

(2)join调用时,不是线程所指向的目标线程阻塞,而是当前线程阻塞。

(3)只有等到当前线程所指向的线程执行完成,或者超时,当前线程才能重新恢复执行。

Runnable有一个重要的问题,它的run方法是没有返回值的。正因为如此,Runnable不能用于需要有返回值的应用场景。

FutureTask类就像一座搭在Callable实例与Thread线程实例之间的桥。FutureTask类的内部封装一个Callable实例,然后自身又作为Thread线程的target。

Future接口不复杂,主要是对并发任务的执行及获取其结果的一些操作。主要提供了3大功能:

(1)判断并发任务是否执行完成。

(2)获取并发的任务完成后的结果。

(3)取消并发执行中的任务。

一般来说,对应于多线程的Java NIO通信的应用场景,Netty的反应器类型为:NioEventLoopGroup。

对应于不同的协议,Netty中常见的通道类型如下:

· NioSocketChannel:异步非阻塞TCP Socket传输通道。

· NioServerSocketChannel:异步非阻塞TCP Socket服务器端监听通道。

· NioDatagramChannel:异步非阻塞的UDP传输通道。

· NioSctpChannel:异步非阻塞Sctp传输通道。

· NioSctpServerChannel:异步非阻塞Sctp服务器端监听通道。

· OioSocketChannel:同步阻塞式TCP Socket传输通道。

· OioServerSocketChannel:同步阻塞式TCP Socket服务器端监听通道。

· OioDatagramChannel:同步阻塞式UDP传输通道。

· OioSctpChannel:同步阻塞式Sctp传输通道。

· OioSctpServerChannel:同步阻塞式Sctp服务器端监听通道。

Netty中的反应器有多个实现类,与Channel通道类有关系。对应于NioSocketChannel通道,Netty的反应器类为:NioEventLoop。

重点申明:一个Netty通道拥有一条Handler处理器流水线,成员的名称叫作pipeline。

在Netty中,将有接收关系的NioServerSocketChannel和NioSocketChannel,叫作父子通道。其中,NioServerSocketChannel负责服务器连接监听和接收,也叫父通道(ParentChannel)。对应于每一个接收到的NioSocketChannel传输类通道,也叫子通道(ChildChannel)。

相关文章

网友评论

      本文标题:高并发知识(四)

      本文链接:https://www.haomeiwen.com/subject/kldnnhtx.html