【Java并发】一段代码

来源:互联网 发布:激萌软件下载 编辑:程序博客网 时间:2024/05/17 23:01

下面的代码用于实现我博客中那个面试的一道题目,仅供参考,

缺点:暂时没有发现。

package test;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;public class Test12 {private final static List<Integer> list = new ArrayList<Integer>();private final static CountDownLatch cdl = new CountDownLatch(10);static class Count implements Runnable {@Overridepublic void run() {int timeout = new Random().nextInt(10);try {TimeUnit.SECONDS.sleep(timeout);} catch (InterruptedException e) {}timeout = new Random().nextInt(100);System.out.println(Thread.currentThread().getName() + "\t" + timeout);list.add(timeout);cdl.countDown();System.out.println(Thread.currentThread().getName() + " end");}}public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Thread(new Count()).start();}try {cdl.await();} catch (InterruptedException e) {e.printStackTrace();}int sum = 0;for (int i : list) {sum = sum + i;}System.out.println(sum);}}


0 0
原创粉丝点击