并发编程专题
文章平均质量分 94
图灵农场
互联网的好处是总有文明的道路可以走,如果在产品、技术、管理上挖掘潜力的话,可以不作恶而通向成功的道路。(布局自己的技术体系!https://gitee.com/wxmingit)
展开
-
加强版ThreadLocal之阿里开源TransmittableThreadLocal学习
我们都知道ThreadLocal是可以在一个线程中当容器使用的局部变量,是线程隔离、线程安全的。但是如果子线程要获取父线程的变量,便不太方便。下面我们一步一步进入:一、ThreadLocal示例:public class MyThread01 { public static void main(String[] args) throws InterruptedException { ThreadLocal<String> parent = new原创 2021-08-13 15:19:43 · 2788 阅读 · 0 评论 -
Thread的setDaemon(true)方法的作用
定义:守护线程--也称“服务线程”,在没有用户线程可服务时会自动离开。优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。设置:通过setDaemon(true)来设置线程为“守护线程”;将一个用户线程设置为守护线程的方式是在线程对象创建之前用线程对象的setDaemon方法。example:垃圾回收线程就是一个经典的守护线程,当我们的程序中不再有任何运行的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是JVM上仅剩的线程时,垃圾回收线程会自动...转载 2020-09-21 16:26:01 · 907 阅读 · 0 评论 -
线程池使用——多层线程嵌套如何保证子线程全部执行完毕再做后续操作及java.util.concurrent.RejectedExecutionException报错解决
当使用线程池的时候,如果多层线程嵌套使用,在子线程提交下一级子线程没有执行完毕的情况下结束线程池,就会报错java.util.concurrent.RejectedExecutionException:也就是shutdown线程池之后又去提交线程就会报改错。如下:java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@425db396 rejected from java.util.原创 2020-08-21 19:00:20 · 7449 阅读 · 4 评论 -
并发编程09-Executor线程池原理与源码解读
一、线程池 “线程池”,顾名思义就是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此Java中提供线程池对线程进行统一分配、调优和监控线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一...原创 2020-07-29 19:49:14 · 367 阅读 · 1 评论 -
并发编程07-Atomic&Unsafe魔法类详解及使用(处理器如何实现原子操作;ABA问题;CAS操作;线程挂起阻塞、唤醒、锁机制;内存屏障)
详见笔记及Git示例1、什么是原子操作?2、CPU原子操作的实现方式3、Atomic相关(ABA问题)4、Unsafe魔法类(CAS操作;线程挂起阻塞、唤醒、锁机制;内存屏障)一、原子操作原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomicoperation)意为”不可被中断的一个或一系列操作”。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子操作的。 术语名称 ...原创 2020-07-22 18:29:26 · 465 阅读 · 0 评论 -
并发编程06-Tools&CountDownLatch&Semaphore原理与应用(CyclicBarrier等)
JUC提供的Tools之五:1、Semaphore2、CountDownLatch3、CyclicBarrier4、Executors5、Exchanger一、SemaphoreSemaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目。Semaphore跟springcloud里Hystrix豪猪一样,可以做限流。怎么使用 Semaphore?1.1、构造方法public Semaphore(int permits)...原创 2020-07-21 10:58:56 · 191 阅读 · 0 评论 -
并发编程02——synchronized&Lock&AQS详解
一、并发同步器-设计同步器的意义多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问。可变:资源可以在其生命周期内被修改。引出的问题: 由于线程执行的过程是不可控的,所以需要采用同步机制来协同对 对象可变状态的访问。那么我们怎么解决线程并发安全问题? 实际上,所有的并发模式在解决线程安全问题时,采用的方案都是序列化访问临界资源。即在同一时刻,只能有一个线程访...原创 2020-05-26 18:31:59 · 447 阅读 · 0 评论 -
并发编程01-JMM&volatile详解
内容大纲 1、现代计算机理论模型与工作原理 2、什么是线程 3、为什么用到并发,并发的优缺点 4、JMM模型 5、volatile关键字 一、现代计算机理论模型与工作方式 现代计算机模型是基于-冯诺依曼计算机模型 计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存 储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下 来,再取出第二条指令,在控制器的指挥下完成规定操作。依此...原创 2020-05-13 19:41:02 · 366 阅读 · 0 评论