【多线程高并发】-多线程实现数组的读与写
发布日期:2021-06-29 15:36:26
浏览次数:2
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月13日 06时53分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
open-falcon template继承与覆盖 注意事项
2019-04-29
zkui KeeperErrorCode = ConnectionLoss for /
2019-04-29
Gradle 多模块 xxx-xx.jar SKIP 依赖模块jar包问题
2019-04-29
Jenkins 时区问题Etc/UTC docker容器
2019-04-29
Java相关面试题总结及答案
2019-04-29
Docker stack task: non-zero exit (137) OOM
2019-04-29
Nginx Docker容器 获取客户端真实IP地址问题
2019-04-29
ssh-copy-id 卡住问题
2019-04-29
Random SecureRandom 随机数生成阻塞问题
2019-04-29
tomcat8.5.15 apr模式运行 配置
2019-04-29
MySQL linux(centos)备份脚本
2019-04-29
CentOS openJdk1.7升级1.8
2019-04-29