接收线程忙队列数不断增大,无法取出执行完毕的接收线程

问题:接收线程状态一直为执行状态,检查线程找不到线程状态为阻塞的线程

解决方法,先打印日志,确定那个线程的状态一直没有改变,然后从这个线程的创建开始跟踪线程执行状态,发现在获取到空闲线程还没有进行状态设置,没有来得及搬到忙队列,就开始运行线程,而起在搬到忙队列的时候线程已经执行完毕,状态置为了阻塞,在搬运接收线程到忙队列前设置线程状态为运行状态,实际上这个时候接收线程已经接收完毕,所有不会对现在状态进行改变,所以搬运到忙队列上的接收线程状态会一直是运行状态。

多线程的典型问题,对分配线程出代码逻辑进行调整后OK,操作是

1)设置线程状态为运行状态;

2)搬运线程到忙队列上;

3)开启线程,是线程接收数据;


之前的错误逻辑是:

1)开启线程;

2)设置线程状态为运行状态;

3)搬运接收线程到忙队列;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值