线程礼让_yield和线程强制执行_join
线程礼让
1.礼让线程,让当前正在执行的线程暂停,但不阻塞
2.将线程从运行状态转为就绪状态
3.让cpu重新调度,礼让不一定成功!看CPU心情
public class TestYield implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"开始打游戏了");
Thread.yield(); //线程礼让
System.out.println(Thread.currentThread().getName()+"游戏打完了");
}
public static void main(String[] args) {
TestYield testYield=new TestYield();
new Thread(testYield,"十三").start();
new Thread(testYield,"十四").start();
}
}
Join
1.Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞
2.可以想象成插队
//测试线程
public class TestJoin implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("我是VIP,赶紧让开"+i);
}
}
public static void main(String[] args) {
TestJoin testJoin=new TestJoin();
new Thread(testJoin).start();
for (int i = 0; i < 100; i++) {
if(i==30){
try {
new Thread().join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("没有VIP"+i);
}
}
}