/**
* 线程的加入
* 1.解释:就是在一个线程A里面的run()方法调用另一个线程B;理论上两个线程是互相独立的
* 这个时候我使用B.join();这个时候,A线程会停下来,然后让B线程优先运行,后来A在调用
* 2.语法:
* run(){
* 线程对象.join();//让原线程停下来
* 线程对象.join(“X毫秒”);//让原线程停下来X毫秒,超过X秒,原线程和线程对象抢占资源
* }
* @author 小虎牙
*
*/
public class Thread_3 {
public static void main(String[] args) {
Thread dThread=new Thread(new ThreadD());
dThread.start();
Thread eThread=new Thread(new ThreadE(dThread));
eThread.start();
}
}
class ThreadE implements Runnable {
Thread dThread;
public ThreadE(Thread dThread) {
// TODO 自动生成的构造函数存根
this.dThread=dThread;
}
@Override
public void run() {
// TODO 自动生成的方法存根
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println("线程E:" + i);
if(i==3) {
try {
System.out.println("开始礼让!");
dThread.join();
System.out.println("上个线程结束!");
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}
class ThreadD extends Thread {
@Override
public void run() {
// TODO 自动生成的方法存根
super.run();
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println("线程A:" + i);
}
}
}
java-线程-3
猜你喜欢
转载自blog.csdn.net/huiguo_/article/details/108817184
今日推荐
周排行