多线程-高并发
多线程-高并发
苦杏仁
心无旁骛!
展开
-
Java线程池的核心线程数和最大线程数
Java的线程池就像是一个花瓶容器。而把任务提交给线程池就像是把小球塞进花瓶。整个过程就像下面这个有趣的动画:下面我们先来了解一下Java线程池的参数。希望看完这篇文章后, 再提起线程池的时候, 你脑海首先出现的, 会是一个花瓶 : )1线程池的参数意义Java线程池的构造函数如下:public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, Ti.转载 2021-03-14 19:33:53 · 25202 阅读 · 15 评论 -
Java的五种线程池、四种拒绝策略、三种阻塞队列
三种阻塞队列: BlockingQueue<Runnable> workQueue = null; workQueue = new ArrayBlockingQueue<>(5); // 基于数组的先进先出队列,有界 workQueue = new LinkedBlockingQueue<>(); // 基于链表的先进先出队列,无界 workQueue = new SynchronousQueue<>(); // 无缓冲的...原创 2021-03-09 18:22:03 · 296 阅读 · 0 评论 -
Guava限流-秒杀-简单示例
原创 2021-02-28 20:13:36 · 239 阅读 · 0 评论 -
Semaphore信号量
Semaphore 是 synchronized 的加强版,作用是控制线程的并发数量;多个线程抢多个资源;下面案例是有六台车抢三个停车位使用Semaphore的代码:public class Demo { public static void main(String[] args) throws Exception{ //模拟三个停车位 Semaphore semaphore = new Semaphore(3); //模拟六台车..转载 2021-02-25 14:33:41 · 62 阅读 · 0 评论 -
CyclicBarrier循环栅栏
它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarrier。未使用循环栅栏的代码:public class Demo { public static void main(String[] args) throws Exception{ for (int i ..转载 2021-02-25 14:25:56 · 64 阅读 · 0 评论 -
CountDownLatch倒计时器 简单运用
CountDownLatch是一个非常实用的多线程控制工具类常用方法有三个CountDownLatch(int count) // 实例化一个倒计数器,count指定计数个数countDown() // 计数减一await() // 等待,当计数减到0时,所有线程并行执行未使用CountDownLatch的代码:public class Demo { public static void main转载 2021-02-25 11:10:15 · 225 阅读 · 0 评论 -
Spring Boot 使用Listener 初始化【线程池+内存队列】 线程池+内存队列初始
1.Main 注入Bean 注册监听器 /** * 注册监听器 */ @Bean public ServletListenerRegistrationBean servletListenerRegistrationBean() { ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean(); s原创 2020-07-19 16:46:57 · 1792 阅读 · 0 评论 -
Java多线程之[Executor] 线程池框架
1.为什么引入Executor线程池框架new Thread()的缺点每次new Thread()耗费性能 调用new Thread()创建的线程缺乏管理,被称为野线程,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。 不利于扩展,比如如定时执行、定期执行、线程中断采用线程池的优点重用存在的线程,减少对象创建、消亡的开销,性能佳 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞 提供定时执行、定期执行、单线程、并发数控制等功能2.E原创 2020-07-10 13:38:04 · 271 阅读 · 0 评论 -
Disruptor简单了解
1.简介 1.1 它是一个高性能的【线程间】异步通信的开源的并发框架,即在【同一个JVM进程】中的【多线程间】消息传递。 Disruptor 是国外 lmax 平台的核心-无锁并行计算框架!LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。 这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理600万订单。 ...原创 2019-12-18 17:47:42 · 256 阅读 · 0 评论