用jion,在A线程的run方法前面调用B.jion()
使用线程条件变量:https://docs.oracle.com/javas...
直接判断变量可能会出现 race condition 。应当使用 java.util.concurrent.locks 包中的 Condition 。
java.util.concurrent.locks
Condition
用ReentrantLock Condition做条件控制。
保证线程停止循环的条件能顺利到达需要停止的线程就OK
while(true){ if(B.stop){ return } }
可以使用Volatile条件变量和Interrupt来实现结束线程
正如一楼所说,线程的join方法即让一个线程A加入到线程B的尾部,只有当线程B执行完毕,A才继续执行。正好对应你的这种情况
4 回答970 阅读
4 回答887 阅读
1 回答656 阅读
1 回答526 阅读
586 阅读
492 阅读
1 回答1.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
9 回答5k 阅读✓ 已解决
1 回答7.1k 阅读
用jion,在A线程的run方法前面调用B.jion()