【多线程高并发】-多线程实现数组的读与写
发布日期:2021-06-29 15:36:26
浏览次数:3
分类:技术文章
本文共 1244 字,大约阅读时间需要 4 分钟。
多线程下实现数组的读与写,用到的是Java的copyOnWriteArrayList数组,具体其有关的解释,可看
package com.lcz.thread;import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.CopyOnWriteArrayList;import java.util.concurrent.ExecutorService;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;// 模拟多线程下的读写例子public class CopyOnWriteArrayTest { // 模拟多线程下的读写例子 public static void useCopyOnWriteArray() { // 存储的数组 CopyOnWriteArrayListarray = new CopyOnWriteArrayList<>(); // 存储的数据通过 Random random = new Random(); // 创建一个线程池 ExecutorService executor = new ThreadPoolExecutor(10, 20, 60L,TimeUnit.SECONDS , new ArrayBlockingQueue<>(10)); // 模拟读写 for(int i=0;i<100;i++) { if(i%3==0) { // 执行写操作 executor.execute(()->{ int value = random.nextInt(50); System.out.println("Write " + value); array.add(value); }); }else { // 执行读操作 executor.execute(()->{ StringBuffer buffer = new StringBuffer(); for(Object value:array) { buffer.append(value + " "); } System.out.println("Read " + buffer.toString()); }); } } // 关闭资源 executor.shutdown(); } public static void main(String[] args) { useCopyOnWriteArray(); }}
转载地址:https://codingchaozhang.blog.csdn.net/article/details/115802082 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月25日 20时43分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
awk 的内置变量 NF、NR、FNR、FS、OFS、RS、ORS
2019-04-29
CentOS系统内核升级攻略
2019-04-29
linux系统时区修改(Debian的主机和docker)
2019-04-29
docker-compose 安装
2019-04-29
crontab 定时任务
2019-04-29
查看docker veth pair与宿主机上网卡的对应关系
2019-04-29
使用 GitLab CI 进行持续集成的一些踩坑
2019-04-29
企业云盘给贸易业带来新的效益
2019-04-29
Linux入门常用命令
2019-04-29
Spring整理
2019-04-29
SpringMvc加强
2019-04-29
初识Vue全家桶 Nuxt.js(一)
2019-04-29
基本路由及动态路由(二)
2019-04-29
视图:默认模板+默认布局(自定义布局)+nuxt.js页面(三)
2019-04-29
基于nuxt下asyncData,fetch发送axios请求(四)
2019-04-29
插件机制+自定义axios(五)
2019-04-29
Redis的学习之路
2019-04-29