gpt4 book ai didi

java - 使用相同的可运行实例初始化两个线程

转载 作者:IT老高 更新时间:2023-10-28 20:58:38 24 4
gpt4 key购买 nike

用相同的可运行实例初始化两个线程是不好的编程吗?使用单独的可运行实例进行初始化会有什么不同,并且完全为同一可运行实例共享内存位置与性能有什么关系?

public static void main(String[] args)throws Exception {
H h = new H();
H h2 = new H();
Thread j = new Thread(h);
j.setName("11");

Thread jj = new Thread(h);//instead of new H()
jj.setName("22");
j.start();
jj.start();
}

class H implements Runnable {
public void run() {
while(true) {
System.out.println(Thread.currentThread().getName());
}
}
}

最佳答案

只要您运行的代码旨在支持它,这样做绝对没问题。它不仅可以通过使用单个实例而不是多个实例来节省一些内存,而且如果这些线程尝试通过共享数据进行通信,那么它可能是绝对需要的!

诚然,通过共享状态进行通信是线程经常变得棘手的地方,所以这需要小心地完成,但从线程系统本身的角度来看,让两个线程调用 run< 绝对没有问题 单个 Runnable 实例的方法。

关于java - 使用相同的可运行实例初始化两个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9562505/

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