线程强制加入、线程强制加入应用场景
程序员文章站
2022-03-01 12:53:44
...
线程强制加入、线程强制加入应用场景
线程强制加入join
- join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞
- 线程的插队方式
- 主线程的代码块中,如果碰到了join方法,此时主线程会阻塞,等待子线程结束之后,再继续执行join之后的代码块
代码
package testthread;
public class TestJoin {
public static void main(String[] args) throws InterruptedException {
//启动线程
Thread t = new Thread("vip") {
@Override
public void run() {
int countDown = 10;
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
countDown--;
System.out.println(Thread.currentThread().getName() + System.currentTimeMillis());
if (countDown <= 0) {
break;
}
}
}
};
//t来了,但还不用join,此时,是主线程和t线程交替执行
t.start();
//主线程
for (int i = 0; i < 20; i++) {
if (i == 10) {
t.join();//执行join则不在交替执行,主线程阻塞,只执行t线程,执行完之后在执行主线程
}
System.out.println("main" + System.currentTimeMillis());
}
}
/*
输出:
main1644572688188
main1644572688188
main1644572688188
main1644572688188
main1644572688188
main1644572688188
main1644572688188
main1644572688188
main1644572688188
main1644572688188
vip1644572689190
vip1644572690191
vip1644572691206
vip1644572692217
vip1644572693224
vip1644572694239
vip1644572695250
vip1644572696264
vip1644572697264
vip1644572698277
main1644572698278
main1644572698278
main1644572698278
main1644572698278
main1644572698278
main1644572698278
main1644572698278
main1644572698278
main1644572698278
main1644572698278
*/
}
上一篇: Java笔记:网络编程
推荐阅读