问题:接收线程状态一直为执行状态,检查线程找不到线程状态为阻塞的线程
解决方法,先打印日志,确定那个线程的状态一直没有改变,然后从这个线程的创建开始跟踪线程执行状态,发现在获取到空闲线程还没有进行状态设置,没有来得及搬到忙队列,就开始运行线程,而起在搬到忙队列的时候线程已经执行完毕,状态置为了阻塞,在搬运接收线程到忙队列前设置线程状态为运行状态,实际上这个时候接收线程已经接收完毕,所有不会对现在状态进行改变,所以搬运到忙队列上的接收线程状态会一直是运行状态。
多线程的典型问题,对分配线程出代码逻辑进行调整后OK,操作是
1)设置线程状态为运行状态;
2)搬运线程到忙队列上;
3)开启线程,是线程接收数据;
之前的错误逻辑是:
1)开启线程;
2)设置线程状态为运行状态;
3)搬运接收线程到忙队列;