reactor和thread线程_Reactor线程模型

Reactor线程模型分为3种

1.单线程模型

对于单线程模型,acceptor处理和handler处理都在一个线程中处理;这个的缺点显而易见,当某个handler阻塞时,会导致其他所有的client的handler都得不到执行,并且更严重的是,handler的阻塞会导致整个服务不能接收新的client请求,因为acceptor也被阻塞了。

2.多线程模型

Reactor多线程模型与单线程模型的区别就是acceptor是一个处理客户端请求,并且有一组特定额NIO线程负责各个客户端连接的IO操作。

Reactor多线程模型的特点:

1.有一个专门线程,即Acceptor线程用于监听客户端的Tcp请求。

2.客户端连接的IO操作都是由一个特定的NIO线程池负责,每个客户端连接都与一个特定的NIO线程绑定,因此在这个客户端连接中所有IO操作都是在同一个线程中完成的。

3.客户端连接有很多,但是NIO线程数比较少,因此一个NIO线程可以同时绑定多个客户端连接。

3.主从多线程模型

如果服务器需要同时处理大量的客户端连接请求或在进行客户单连接时,进行一些权限的检查,那么单线程的Acceptor很有可能处理不过来,造成大量的客户端不能连接到服务器。

所以在Reactor模型中,服务器端接收客户端的连接请求不在是一个线程,而是由一个独立的线程池组成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值