gpt4 book ai didi

java - 我什么时候应该在多个线程中使用不同的实例或共享实例?

转载 作者:行者123 更新时间:2023-11-30 02:08:41 24 4
gpt4 key购买 nike

第一种方法是这样的:

public class Demo {
public static void main (String args[]) {
Apple a1 = new Apple();
Apple a2 = new Apple();
Thread t1 = new Thread(a1, "First Thread");
Thread t2 = new Thread(a2, "Second Thread");

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

第二种方法是这样的:

public class Demo {
public static void main (String args[]) {
Apple a = new Apple();
Thread t1 = new Thread(a, "First Thread");
Thread t2 = new Thread(a, "Second Thread");

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

void run() 方法位于 Apple 类中,我没有将其粘贴到此处。似乎在第一种情况下我创建了 2 个 Apple 类对象并将它们分别传递给 t1t2。在第二种情况下,我将相同的 Apple 类对象传递给 t1 和 t2。多线程方面的真正区别是什么?你能建议我哪种方法是正确的和推荐的吗?谢谢!

最佳答案

如果您的Apple对象是无状态的,那么没有区别。但如果它有某种状态及其 run()方法修改它的属性,那么您需要同步对 Apple 的这些属性的访问(或确保这些属性是线程安全的)对象。

选择什么取决于您的业务逻辑。

关于java - 我什么时候应该在多个线程中使用不同的实例或共享实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50723468/

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