gpt4 book ai didi

java - 两个线程的run方法的执行顺序是如何控制的?

转载 作者:行者123 更新时间:2023-11-30 10:15:33 26 4
gpt4 key购买 nike

运行此代码会得到以下输出:

 Name of t1:Thread-0
Name of t2:Thread-1
id of t1:8
running...
After changing name of t1:Sonoo Jaiswal
running...

是否应该在第一个“running...”字符串之后打印最后一个“running...”字符串?这是代码——

class TestJoinMethod3 extends Thread{
public void run(){
System.out.println("running...");
}
public static void main(String args[]){
TestJoinMethod3 t1=new TestJoinMethod3();
TestJoinMethod3 t2=new TestJoinMethod3();
System.out.println("Name of t1:"+t1.getName());
System.out.println("Name of t2:"+t2.getName());
System.out.println("id of t1:"+t1.getId());

t1.start();
t2.start();

t1.setName("Sonoo Jaiswal");
System.out.println("After changing name of t1:"+t1.getName());
}
}

最佳答案

没有控制。

就是这么简单。线程首先是相互独立的。因此,无法预测事情发生的确切顺序。

如果您需要控制您的线程进行的方式,您必须研究实现这一点的方法(例如,可能是“先于发生”关系或同步点)。

关于java - 两个线程的run方法的执行顺序是如何控制的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420746/

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