62,614
社区成员
发帖
与我相关
我的任务
分享
public class Test {
private String name;
public Test(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class MyJava {
public static final int SIZE = 1000;
private volatile Test[] testArray = new Test[SIZE];
public MyJava() {
for (int i = 0; i < SIZE; i++) {
testArray[i] = new Test("name:" + i);
}
}
public static void main(String[] args) {
new InitThread(new MyJava()).start();
}
public Test getTest(int index) {
return testArray[index];
}
public void setTest(int index, Test t) {
testArray[index] = t;
}
}
import java.util.Random;
public class InitThread extends Thread {
private MyJava mj;
public InitThread(MyJava mj) {
this.mj = mj;
}
public void run() {
int at = new Random().nextInt(MyJava.SIZE);
for (int i = 0; i < 10; i++) {
new MonitorThread("线程:" + i, mj, at).start();
}
try {
Thread.sleep(3000);
} catch (Exception e) {
}
Test t = mj.getTest(at);
t.setName("测试");
}
}
public class MonitorThread extends Thread {
private MyJava mj;
private int at;
public MonitorThread(String name, MyJava mj, int at) {
super(name);
this.mj = mj;
this.at = at;
}
public void run() {
while (true) {
Test t = mj.getTest(at);
if ("测试".equals(t.getName())) break;
}
System.out.println(getName() + " over");
}
}