51,407
社区成员
发帖
与我相关
我的任务
分享比如线程A执行某个方法,当中有阻塞,阻塞后线程A是BLOCK等待。
想问下有没有这种机制,阻塞后A去执行其他任务,等之前那个方法执行完了,系统再重新分配线程(可能还是A,也可能是其他的线程比如B)继续执行?
正在执行该任务的线程发生阻塞后,该线程会处于无法调用状态,无法执行其他任务.
线程阻塞后是不能做其他事情的,但是你可以分解流程, A做第一部分 ,然后做完后 B做第2部分, 然后C做第三部分,
阻塞后A还能分身去做其他任务就不是阻塞了。
一个阻塞、一个执行其他任务,这本来就是两个线程的需求。
资源层面 wait notify 以及 lock 可以实现类似功能, 线程层面 使用 JUC下 比如 countDownLatch,CyclicBarrier,Semaphore 可以实现