互いに干渉することなく、マルチスレッドの各スレッドにオブジェクトを渡したいのですが、どうすればよいですか?
package com.demo.thread;
public class MyBean {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "MyBean{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
import com.demo.thread.MyBean;
public class TestA extends Thread {
private MyBean myBean;
public TestA(MyBean myBean){
this.myBean = myBean;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"---"+myBean.getId());
}
}
import com.demo.thread.MyBean;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(3);
int i = 0;
while (i<20) {
MyBean myBean = new MyBean();
myBean.setId(i);
TestA t = new TestA(myBean);
executorService.execute(t);
i++;
}
}
}
これが発生した場合はどうなりますか?
MyBean myBean = new MyBean();
while (i<20) {