![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发编程
文章平均质量分 90
小方9527
这个作者很懒,什么都没留下…
展开
-
线程池源码分析
线程池源码分析主要分两大块,带着下面这些问题来分析 1.线程池的创建:线程池中的线程是如何被创建的?任务是怎么被执行的。执行完任务后是如何复用的。当任务挤压后,又是如何处理这些任务的?主要以execute()为切入点展开 2.线程池的销毁:如何优雅的关闭掉一个线程池,如果关闭线程池,那正在执行的任务、以及等待被执行的任务将如何被处理,还要如果关闭线程池后,还继续提交任务,线程池如何处理呢?主要是以shutdown()、shutdownNow()为切入点展开 1.任务是如何被添加并被执行的 1.线程池的状.原创 2021-10-24 23:09:52 · 701 阅读 · 0 评论 -
java多线程系列--AQS-01之独占锁原理浅析
概述 锁是用来控制多个线程在同一时间访问共享资源的方式,一般来讲锁能防止多个线程同时访问共享资源从而达到线程安全的访问(有些共享锁是允许多个线程同时访问共享资源的,比如读写锁)。 我们已经有了synchronized关键字,JUC为啥要新增Lock接口用来实现锁 支持锁的中断响应:当获取锁时线程被中断,中断异常将被抛出,同时锁会被释放 锁申请等待限时:超过给定时间还未能获取到锁则返回,而不会一直阻原创 2017-05-01 21:19:41 · 514 阅读 · 0 评论 -
java多线程系列--AQS-02之锁中断
锁中断的概念个人理解就是在一定时间内如果线程还未能获取到锁,我们可以对其进行中断处理并且线程能感知到这一行为的发生(这里的中断并不是说立刻停止线程而是让线程感知到然后我们在进行一些相应的处理比如break、return)synchronized不支持锁的中断public class SynchronizedIntercept { final static Object synchronize原创 2017-05-02 13:35:10 · 1267 阅读 · 0 评论 -
java线程池中任务异常处理
首先我们看个例子,当使用线程池执行任务时如果某个任务出现异常会是什么效果import java.util.concurrent.SynchronousQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit;public class DivTask implements Ru原创 2017-05-14 22:06:34 · 3006 阅读 · 1 评论 -
CountDownLatch的基本使用
CountDownLatch常用于允许一个或多个线程等待直到在其他线程中一组操作执行完成再执行 比如,线程4,5,6 需要等待线程1,2,3执行完成之后再执行 /** * countDownLatch 和join功能类似,它允许一个或多个线程等待直到在其他线程中一组操作执行完成 */ public class CountDownLatchTest { private final st...原创 2019-02-25 14:34:38 · 99 阅读 · 0 评论 -
java中如何优雅的终止一个线程
/** * 优雅的中断一个线程 */ public class ThreadInterrcupt { static class MyThread implements Runnable{ @Override public void run() { while (true){ if(Thread....原创 2019-03-01 15:07:39 · 485 阅读 · 0 评论 -
threadlocal应用及其源码分析
ThreadLocal是什么? 简单来讲就是线程局部变量,线程之间操作的变量互不影响各自独立,但如果ThreadLocal存放的是一个全局共享的引用变量依旧会有线程安全问题,ThreadLocal只是将共享变量变成私有变量达到线程安全而已 ThreadLocal的使用 public class ThreadLocalTest01 { private final static Thread...原创 2019-08-11 14:01:40 · 110 阅读 · 0 评论