插队
'Thread.yield();//当前线程让出CPU,别人不一定会过来插队 '
'mt.join();//点名要求mt来插队,且直到mt全部执行结束'
package a1;
public class RunnableImpl {
public static void main(String[] args) {
MyThreadFour mt2 = new MyThreadFour();
mt2.start();
MyThreadThree mt1 = new MyThreadThree(mt2);
mt1.start();
}
}
class MyThreadThree extends Thread {
private MyThreadFour mt;
//插队对象赋值
public MyThreadThree(MyThreadFour mt) {
this.mt = mt;
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 100; i++) {
if (i == 50) {
//Thread.yield();//当前线程让出CPU,别人不一定会过来插队
try {
mt.join();//点名要求mt来插队
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(this.getName() + "第一个线程正在运行~~~~~~~~~~~~~~~~~~~~~~~~" + i);
}
}
}
class MyThreadFour extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 100; i++) {
System.out.println(this.getName() + "第二个线程正在运行~~~~~~~~~~~~~~~~~~~~~~~~" + i);
}
}
}