JUC并发(并发的包)下的CopyOnWriteArrayList(线程安全的集合)

简介: JUC并发(并发的包)下的CopyOnWriteArrayList(线程安全的集合)

JUC是java.util.concurrent包的简称,在Java5.0添加,目的就是为了更好的支持高并发任务。让开发者进行多线程编程时减少竞争条件和死锁的问题    

循环插入10000条数据


package com.wyh.thread;
import java.util.concurrent.CopyOnWriteArrayList;
/**
 * @program: Thread
 * @description: JUC并发包下的安全集合
 * @author: 魏一鹤
 * @createDate: 2022-01-16 18:12
 **/
//JUC 安全类型的集合
public class TestJUC {
public static void main(String[] args){
//JUC下的安全类型的集合 这个是集合是线程安全带
        CopyOnWriteArrayList<String> copyOnWriteArrayList=new CopyOnWriteArrayList<String>();
for (int i = 0; i < 10000; i++) {
new Thread(()->{
//循环插入10000条数据
                copyOnWriteArrayList.add(Thread.currentThread().getName());
            }).start();
        }
//阻塞1s
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(copyOnWriteArrayList.size());
    }
}

点开源码会发现它是被volatile(唯一的)和transient(有序的)修饰的,这两个关键字都是JUC下的.保证是有序并且唯一的


image.png

目录
相关文章
|
6天前
|
数据采集 存储 Java
高德地图爬虫实践:Java多线程并发处理策略
高德地图爬虫实践:Java多线程并发处理策略
|
2月前
|
网络协议 算法 Java
|
2月前
|
安全 算法 Java
Java中的线程安全集合
【2月更文挑战第23天】本文将介绍Java中的线程安全集合,包括它们的使用场景、优缺点以及如何在实际项目中应用。通过阅读本文,你将了解到线程安全集合的重要性以及如何在多线程环境下使用它们来提高程序的性能和稳定性。
38 0
|
2月前
|
安全 数据库连接 数据库
连接池的并发和线程安全
连接池的并发和线程安全
|
2月前
|
安全 Java 容器
线程安全的集合类
线程安全的集合类
|
7天前
|
监控 安全 Java
一文讲明白Java中线程与进程、并发与并行、同步与异步
一文讲明白Java中线程与进程、并发与并行、同步与异步
7 1
|
12天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
14天前
|
Java 开发者
Java中多线程并发控制的实现与优化
【4月更文挑战第17天】 在现代软件开发中,多线程编程已成为提升应用性能和响应能力的关键手段。特别是在Java语言中,由于其平台无关性和强大的运行时环境,多线程技术的应用尤为广泛。本文将深入探讨Java多线程的并发控制机制,包括基本的同步方法、死锁问题以及高级并发工具如java.util.concurrent包的使用。通过分析多线程环境下的竞态条件、资源争夺和线程协调问题,我们提出了一系列实现和优化策略,旨在帮助开发者构建更加健壮、高效的多线程应用。
8 0
|
18天前
|
Java API 调度
安卓多线程和并发处理:提高应用效率
【4月更文挑战第13天】本文探讨了安卓应用中多线程和并发处理的优化方法,包括使用Thread、AsyncTask、Loader、IntentService、JobScheduler、WorkManager以及线程池。此外,还介绍了RxJava和Kotlin协程作为异步编程工具。理解并恰当运用这些技术能提升应用效率,避免UI卡顿,确保良好用户体验。随着安卓技术发展,更高级的异步处理工具将助力开发者构建高性能应用。
|
19天前
|
存储 安全 Java
多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(下)
多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(下)
43 0