多线程的自然分裂管理法

多线程在一般环境下通常是分主副线程,主线程负责进行线程调度.具体负责的是线程的创建,

流程如:主线程接受任务->根据任务创建线程->子线程处理任务->结束退出

更高阶的处理模式如线程池:主线程创建若干子线程->子线程闻讯堆栈是否有任务->有任务处理之->等待新的任务->被新任务事件触发后处理任务->回到等待新任务

注意如上处理过程有个共同点就是子线程没有创建新线程的权利.

多线程的自然分裂管理法的意识就是不区分主副线程.

当一个线程开始时,是否创建新线程由这个线程根据当前情况决定.

例如当前处理的堆栈超过一定数量,不能满足处理需求时,逻辑线程主动创建一个新线程来处理,

当前堆栈少于一定数量,并且线程计数大于某些值的情况下就可以申请销毁自己.

也就是一个线程是否创建或销毁完全由当前线程根据实际情况判断.

线程数量的多寡,甚至是否会导致频繁创建线程,这些都是可以控制的.

自然分裂的优势不在于等待任务,而是处理那些不相干任务时减少跨线程的通讯.

发现任务不能处理之后可以主动分裂线程,因为是数据的所有权在整个分裂过程中都是多线程安全的.

分离之后也是多线程安全的,形成伞形的发散,直到所有任务被处理完毕,线程自动销毁.

在一些可以形成新任务的场合,如网络句柄中的listen和connect,

积攒到一定数量的句柄后就可以产生分离,

纯链接的数据句柄在所有句柄都断开链接后就可以主动销毁.

而其他有繁殖能力的句柄又会产生新的分离,形成美妙的场景.


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值