6.18Java并发容器

6.18Java并发容器

使用JUC并发编程内部的容器--->内部已经实现好了锁定

package iostudy.synchro;

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

/**
* 线程安全:操作JUC并发编程的容器
* @since JDK 1.8
* @date 2021/6/18
* @author Lucifer
*/
public class SynContainer {
   public static void main(String[] args) throws InterruptedException{
       /*保证的是工作内存和主内存相互写的过程中保证数据安全*/
       CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<String>();
       for (int i=0; i<10000; i++){
           new Thread(() -> {
               list.add(Thread.currentThread().getName());
          }).start();
      }

       /*线程等待*/
       Thread.sleep(10000);

       /*打印内容*/
       System.out.println(list.size());

  }
}
/*
源码中这个CopyOnWriteArrayList类一开始就拿到了可重入锁
可重入锁:
a方法拿到了数据锁可以带入b方法中使用
属于高级并发编程,后期肯定会使用到的一个容器
*/

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14901002.html