上了课:
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();
}
我的意思是新的一次与每个线程的新?
答案 0 :(得分:0)
这是两者之间的区别:
在第一个示例中,您仅创建一个ThreadImpl
实例,因此也仅创建了一个Worker
和AnotherWorker
实例。这将在您创建的不同线程之间共享。
在第二个示例中,您将为每个Thread
创建一个对象,除非您有理由共享Worker
对象,否则这应该是首选方法。