gpt4 book ai didi

java - 多线程实例化一次vs每个线程

转载 作者:行者123 更新时间:2023-12-03 13:08:00 24 4
gpt4 key购买 nike

上这个类:

public class ThreadImpl implements Runnable {

public ThreadImpl(Worker worker, AnotherWorker anotherWorker){
this.worker = worker;
this.anotherWorker = anotherWorker;
}


private Worker worker;

private AnotherWorker anotherWorker;

public void run(){
...
worker.doThis();
...
anotherWorker.doThat();
...
}
}

这些之间有什么区别(首选哪一个,为什么?):

1。
ThreadImpl threadImpl = new ThreadImpl(new Worker(), new AnotherWorker());
for(int i=0; i < 5; i++) {
new Thread(threadImpl).start();
}

2。
for(int i=0; i < 5; i++) {
ThreadImpl threadImpl = new ThreadImpl(new Worker(), new AnotherWorker());
new Thread(threadImpl).start();
}

我的意思是每线程新一次还是新?

最佳答案

这是两者之间的区别:

在第一个示例中,您仅创建一个ThreadImpl实例,因此也仅创建了一个WorkerAnotherWorker实例。这将在您创建的不同线程之间共享。

在第二个示例中,您将为每个Thread创建一个,除非您有理由共享Worker对象,否则这应该是首选方式。

关于java - 多线程实例化一次vs每个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53139300/

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