【多线程高并发】-多线程实现数组的读与写
发布日期: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() {
// 存储的数组 CopyOnWriteArrayList
array = 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Java设计者模式】-Java实现订阅-发布者模式
下一篇:【多线程高并发】-Java使用阻塞队列ArrayBlockingQueue实现生产者消费者模式?

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月13日 06时53分43秒