线程传递值:
public class TestThread {
public static void main(String[] args) {
MyThread t = new MyThread(new Work());
t.start();
}
}
class Data {
private int data = 0;
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
}
class Work {
public void traceProcess(Data data, int... nums) {
for (int i : nums) {
data.setData(data.getData() + i);
}
}
}
class MyThread extends Thread {
private Work work = null;
public MyThread(Work work) {
this.work = work;
}
@Override
public void run() {
Random random = new Random();
Data data = new Data();
int n1 = random.nextInt(1000);
int n2 = random.nextInt(2000);
int n3 = random.nextInt(3000);
work.traceProcess(data, n1, n2, n3);
System.out.println("n1: " + n1 + " n2: " + n2 + " n3: " + n3
+ " data: " + data.getData());
}
}