![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 56
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
超实用线程池工具类(有返回值)
package com.shuige.business.train.util;import org.apache.poi.ss.formula.functions.T;import java.util.concurrent.Callable;import java.util.concurrent.Future;import java.util.concurrent.LinkedBl...原创 2018-08-23 13:50:52 · 7030 阅读 · 6 评论 -
Java 读写锁的运用
读写锁顶层接口是 ReadWriteLock , 实现类是 ReentrantReadWriteLock;其实读写锁,运用没什么好说的. 同时读,没有安全性问题, 所以不用到互斥, 而读写, 或写写则涉及到安全性问题, 就要互斥.直接上代码吧package com.zz.amqp1.locktest;import lombok.Data;import java.util.Rand...原创 2018-12-28 10:15:36 · 2541 阅读 · 0 评论 -
线程池和 Executor框架
目录一 使用线程池的好处二 Executor 框架2.1 简介2.2 Executor 框架结构(主要由三大部分组成)2.3 Executor 框架的使用示意图三 ThreadPoolExecutor详解3.1 ThreadPoolExecutor类的四个比较重要的属性3.2 ThreadPoolExecutor类中提供的四个构造方法 3.3 如何创建Thr...原创 2019-01-02 14:41:58 · 263 阅读 · 0 评论 -
ThreadLocal(二) ThreadLocal内存泄漏原因,原理以及生产标准范例
写在正文前: 如果不理解ThreadLocal是什么? 应用场景的可以先看博主写的关于ThreadLocal的第一篇文章传送门:ThreadLocal(一) ThreadLocal使用场景和API介绍------------------------------------------------------------------------------------------------...原创 2018-12-11 15:03:17 · 431 阅读 · 0 评论 -
ThreadLocal(一) ThreadLocal使用场景和API介绍
其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程...原创 2018-12-11 14:42:43 · 423 阅读 · 0 评论 -
java多线程,正确使用wait 和 notify
众所周知, wait 和 notify 是线程之间通信用的, 要通信, 就必须要要有锁.wait , 是对锁进行释放,并且将当线程暂停(sleep是暂停不释放锁);notify, 是唤醒wait中的线程. 为了更好的理解我们通过一道笔试题来加深印象:设计2条线程, 主线程循环5次后子线程循环8次,然后主线程继续循环5次子循环8次......., 一共循环10次.代码实现 首先分...原创 2018-12-10 17:07:46 · 360 阅读 · 0 评论 -
线程池 @Async 注解的配置
写一个Executor配置类:/** * Description: 自定义线程池配置类,核心10个, 最大100个 * User: zhouzhou * Date: 2018-10-24 * Time: 16:20 */@Configuration@EnableAsync@ConfigurationProperties(prefix = "spring.task.pool")...原创 2018-10-27 17:50:30 · 2327 阅读 · 6 评论 -
多线程之IO密集型和CPU密集型
CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计...原创 2018-09-11 10:35:33 · 2743 阅读 · 0 评论 -
SpringBoot异步任务, 以及带返回值的异步任务(@Async 不起作用的原因)
废话不说直接看代码: 第一部分: 无返回值异步任务当没有加入异步任务的时候,我们创建一个service ,里面的方法需要等待3秒才能完成, controller层写一个测试方法调用时间返回的接口, 直接调用,下面是service层代码部分package com.zz.amqp1.service;import org.springframework.stereotype.Ser...原创 2018-08-28 14:05:19 · 59664 阅读 · 17 评论 -
高并发场景下的限流策略
什么是限流和降级在开发高并发系统时,有很多手段来保护系统: 缓存、降级、限流。当访问量快速增长、服务可能会出现一些问题的时候(响应超时),或者会存在非核心服务影响到核心流程的性能时,仍然需要保证服务的可用性,即便是有损服务。所以意味着我们在设计服务的时候,需要一些手段或者关键数据进行自动降级,或者配置人工降级的开关。缓存的目的是提升系统访问速度和增大系统处理的容量,可以说是抗高并发...原创 2019-04-15 09:36:56 · 380 阅读 · 0 评论