gpt4 book ai didi

Java线程Join方法

转载 作者:行者123 更新时间:2023-12-01 16:02:23 25 4
gpt4 key购买 nike

Join 方法如何在 Thread 中工作。如果在run方法中写join方法那么就会陷入死锁。只需要了解其发生原因即可。

代码片段:

public class ThreadSchuduling extends Thread{
static ThreadSchuduling threadObj3;
public ThreadSchuduling(){
System.out.println("Default Constructor");
}
public ThreadSchuduling(String name){
System.out.println("Parameter Constructor");
}
public void run(){
try{
threadObj3.join();
}catch(Exception e){
System.out.println("Error in RUN "+e);
}
System.out.println(Thread.currentThread().getName());
for(int i = 0; i < 10; i++){
System.out.println("Value is = "+i);
}

}
public static void main(String[] args) {
ThreadSchuduling threadObj1 = new ThreadSchuduling("Thread1");
ThreadSchuduling threadObj2 = new ThreadSchuduling("Thread2");
threadObj3 = new ThreadSchuduling("Thread3");
ThreadSchuduling threadObj4 = new ThreadSchuduling("Thread4");

threadObj1.start();
threadObj2.start();
threadObj3.start();
System.out.println("Thread 3 is started");
threadObj4.start();
try{
threadObj3.join();

}catch(Exception e){
System.out.println("Errpr "+e);
}
System.out.println("Main Method completed");
}

}

我只想在线程1和线程2之前完成线程3

最佳答案

您还没有解释 threadObj3 是什么...这是对同一线程的引用吗?如果是这样,那么它会陷入死锁是可以理解的 - 它会等待直到完成,但它不会这样做,因为它正在等待!

您实际上想要实现什么目标?

关于Java线程Join方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com