
java多线程
不忘初心ff
初出茅庐的新人
展开
-
java线程
最近一直在复习java线程相关的知识,以前零零散散的看过,这次自己试着总结一下: 1线程和进程的基本概念以及特点? --进程是现代分时操作系统的工作单元,通常一个程序对应一个进程;每个进程都有自己的独立资源和自己的私有地址空间,在没有经过进程允许的情况下,一个进程不可以访问其他进程的地址空间。 --线程被称作轻量级进程,是进程执行的基本单元;一个进程可以拥有多个线程,一个线程必须有一个父进程;线...原创 2018-12-17 21:51:16 · 140 阅读 · 0 评论 -
JUC包中锁的实现原理——AQS
锁是java同步的重要机制,在之前的博客中写了一些关于锁的内容,但比较浅显,这里从源码的角度来分析一下java中方的锁。java中的锁主要有两种:Synchronized和ReenTrarantLock,前者是从jvm的层面实现的,后者是从代码的层面实现的,因此这篇文章的主要对象是针对后者。谈到ReenTrarantLock的实现,就不得不提到AQS。 AbstractQueuedSynchro...原创 2019-06-15 21:03:07 · 816 阅读 · 0 评论 -
CountDownLatch的实现原理
在日常开发中经常会遇到需要在主线任务中开启多个线程,并等到所有子线程完成工作之后再进行汇总的情形,这种情况下可以考虑使用CountDownLatch这个工具类实现功能,下面是使用CountDownLatch的一个示例: package xiancheng.Lock; import java.util.concurrent.CountDownLatch; public class Count...原创 2019-06-16 16:40:57 · 3270 阅读 · 0 评论 -
CycleBarrier回环屏障源码解析
CyclicBarrier是回环屏障的意思,它可以让一组线程全部达到一个状态后再全部同时执行,之所以叫回环是因为当所有线程执行完毕,可以重置CyclicBarrier状态,进行复用,这也是它与CountDownLatch的主要区别,下面介绍一个案例: public class CyclicBarrierTest { public static void main(String...原创 2019-06-22 20:37:41 · 630 阅读 · 0 评论 -
Java并发包中的线程池原理
1为什么使用线程池: (1)当大量执行异步任务时线程池可以提供更好的性能,在不使用线程池时,每当需要执行任务时需要new一个线程来运行,而线程的创建和销毁都需要一定开销 (2)线程池提供了一种资源控制和管理的手段,比如控制线程个数,动态增加线程等。 2类图介绍: Executors是一个工具类,里面提供了很多静态方法,我们可以根据不同的需求选取不同的线程池实例,具体如图所示: 下面我...原创 2019-07-21 20:55:28 · 181 阅读 · 0 评论