public static void main(String[] args) {
System.out.println(getData());
}
public static Vector<String> getData() {
Vector<String> list = new Vector<String>();
Hashtable<String, Integer> cMap = new Hashtable<>();
cMap.put("c", 0);
long start = System.currentTimeMillis();
for (int i = 1; i <= 10; i++) {
final String fi = i + "";
new Thread(new Runnable() {
@Override
public void run() {
try {
Random random = new Random();
Thread.sleep(random.nextInt(2000));
} catch (InterruptedException e) {
}
list.add(fi);
synchronized (cMap) {
cMap.put("c", cMap.get("c") + 1);
cMap.notify();
}
}
}).start();
}
synchronized (cMap) {
while (cMap.get("c") < 10) {
try {
cMap.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
System.out.println(System.currentTimeMillis() - start);
return list;
}
线程阻塞与唤醒
最新推荐文章于 2024-05-29 09:25:10 发布