
多线程
无情编码工具人
这个作者很懒,什么都没留下…
展开
-
读写锁
import java.util.*;import java.util.concurrent.locks.ReentrantReadWriteLock;public class demo1 { public static void main(String args[]) { MyCaChe myCaChe = new MyCaChe(); for(int i = 1;i<5;i++) { final int temp = i; new.原创 2021-03-30 16:56:32 · 93 阅读 · 0 评论 -
线程常用工具类(CountDownLatch ,CyclicBarrier , Semaphore )
CountDownLatch 减法 CountDownLatch countDownLatch = new CountDownLatch(6); countDownLatch.countDown();//-1 countDownLatch.await();//等待计数器归0CyclicBarrier 加法CyclicBarrier cyclicBarrier = new CyclicBarrier(7, () -> { Syste原创 2021-03-29 16:36:53 · 125 阅读 · 0 评论 -
Callable 创建线程
MyThread myThread = new MyThread(); //FutureTask 是Runnable 的实现类 FutureTask futureTask = new FutureTask(myThread); //Thread 构造只接收Runnable 接口类型参数 new Thread(futureTask).start(); //获取返回值 futureTask.get();//可以...原创 2021-03-29 15:41:22 · 98 阅读 · 0 评论 -
解决ArrayList高并发问题
/** * 解决ArrayList的三种方法 */ //1. 线程安全 add 方法使用的是 synchronized 修饰,但其效率并不高 //List<String> list = new Vector<>(); //2. Collections 工具类转换成线程安全 //List<String> list = Collections.synchronizedList(new Ar原创 2021-03-29 14:10:21 · 779 阅读 · 0 评论 -
JUC-Lock锁-生产者消费者模式顺序执行
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class demo { public static void main(String[] args) { ProductiveAndConsumption pac = new ProductiveA..原创 2021-03-29 11:21:10 · 131 阅读 · 0 评论 -
NIO入门学习
NIO基本操作通过管道 进行IO操作模拟聊天 服务端单线程高效处理多客户端Server端编写客户端实现群聊服务端客户端效果图通过管道 进行IO操作 //写操作 @Test void wirte() throws IOException { FileOutputStream fos = new FileOutputStream("data.txt"); FileChannel channel = fos.getChannel(); //创建原创 2021-03-22 09:55:21 · 202 阅读 · 0 评论 -
BIO伪异步实现聊天效果
BIO伪异步实现聊天效果创建线程池package com.zyd.bio.three;import java.util.concurrent.*;public class HandlerServerPool { private ExecutorService executorService; public HandlerServerPool(int maximumPoolSize, int queueSize){ /* 第一个参数 能处原创 2021-03-19 15:53:26 · 78 阅读 · 0 评论