![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发
文章平均质量分 89
风在哪
个人网站:https://www.wygandwdn.cn
欢迎来访问啊!
展开
-
深入理解ThreadPoolExecutor第三弹
从源头解析ThreadPoolExecutor第三弹—属性及execute方法详解首先我们看看ThreadPoolExecutor都有哪些属性:ctl属性是ThreadPoolExecutor中出现的第一个属性,所以我们首先来看看ctl属性的作用。ctl属性ctl是线程池中的重要标识,它主要有两个作用:线程池的运行状态线程池中工作线程数这里为什么要用一个变量代表线程池中两个重要标识呢,我们可以从如下两点考虑:首先,我们需要考虑的是多线程中线程安全的问题。在多线程环境中,Java中主要原创 2021-06-07 09:03:39 · 366 阅读 · 8 评论 -
深入理解ThreadPoolExecutor第二弹
从源头解析ThreadPoolExecutor第二弹—ThreadPoolExecutor的内部类ThreadPoolExecutor主要包括如下内部类:其中AbortPolicy、CallerRunsPolicy、DiscardOldestPolicy、DiscardPolicy表示任务的拒绝策略,当线程池的线程数量达到最大值并且阻塞队列已满时,根据这些不同的策略对新提交的任务进行不同的处理。它们都实现了RejectedExecutionHandler接口。而Worker代表我们执行的任务,我们提原创 2021-05-31 10:12:05 · 328 阅读 · 23 评论 -
深入理解ThreadPoolExecutor第一弹
从源头解析ThreadPoolExecutor第一弹—Executor&ExecutorService&AbstractExecutorService首先我们来看看Thread PoolExecutor的继承关系:从上图中可以看出,ThreadPoolExecutor继承自AbstractExecutorService,而AbstractExecutorService又实现了ExecutorService接口,ExecutorService接口继承自Executor。那么我们今天先来原创 2021-05-28 09:03:34 · 308 阅读 · 4 评论 -
浅析JUC-CountDownLatch
JUC-CountDownLatch详解CountDownLatch是通过AQS实现的同步器,与ReentrantLock不同的是,CountDownLatch实现的是共享式获取锁的方法,而非是独占式的。也就是说不同的线程都可以调用CountDownLatch方法获取锁,或者对锁进行释放CountDownLatch源码下面我们来看看其源码:/*CountCDownLatch是一种同步辅助工具,允许一个或者多个线程等待一组在其他线程中执行的操作完成CountDownLatch在初始化时会指定一个原创 2021-05-24 19:55:35 · 288 阅读 · 0 评论 -
Java如何停止一个线程
Java如何停止一个线程在Java中,停止一个正在运行的线程,我们可以通过如下方法实现:设置一个volatile类型的变量,通过判断变量的值来确定run方法是否运行完成正常退出通过interrupt()方法来通知,给线程打上一个终止的标志,但是具体的停止逻辑需要在线程内部实现此外还有一种方法是调用stop()方法来停止线程,但是这个方法不安全:它会释放该线程持有的所有锁,一般任何进行加锁的代码块,都是为了保护数据的一致性,如果在调用thread.stop()后导致了该线程所持有的所有锁突然释放,原创 2021-05-20 19:34:59 · 5119 阅读 · 9 评论