开发者社区> 问答> 正文

线程间操作List

线程间操作List

展开
收起
游客bnlxddh3fwntw 2020-04-10 13:57:26 1304 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList;

    public class ConcurrentList { //private static List TEST_LIST = new CopyOnWriteArrayList (); private static List TEST_LIST = Collections.synchronizedList(new ArrayList ());

    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    synchronized (TEST_LIST) {
                        TEST_LIST.add("11");
                    }
                    System.out.println("Thread1 running");
                }
            }
        }).start();
    
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    synchronized (TEST_LIST) {
                        for (String at : TEST_LIST) {
                            TEST_LIST.add("22");
                        }
                    }
                    System.out.println("Thread2 running");
                }
            }
        }).start();
    }
    

    }

    2020-04-10 21:07:50
    赞同 展开评论 打赏
  • List list = Collections.synchronizedList(new ArrayList());

    2020-04-10 13:57:34
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载