并发编程
文章平均质量分 92
Benett-Chen
心存美好,向往未来
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
valatile原理
volatile定义官方定义:java语言规范第三版中对volatile的定义如下:java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排它锁单独获得这个变量。java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明或volatile,java线程内存模型确保所有线程看到这个变量值是一致的。个人定义:volatile的解释通常...原创 2020-04-25 16:28:54 · 389 阅读 · 0 评论 -
手动实现线程池
通过手写线程池,理解了以下问题:1.当任务堆满阻塞队列后,线程池会new新的线程来处理新的任务,直到线程数量达到最大值。这些新new出来的线程什么时候销毁呢?答:new出新线程后,这些线程同核心线程一样,处理阻塞队列里面的任务,阻塞队列里面任务处理完了后,新new出来的线程在等待设置的时间后,进行销毁,核心线程继续存活。2.比核心线程池数多的线程如何实现等待设置的时间后就销毁呢?答案是:...原创 2019-11-25 20:56:08 · 373 阅读 · 0 评论 -
深入理解 CyclicBarrier和CountDownLatch
最近在深入了解Java并发,看到CyclicBarrier和CountDownLatch 这两个类的时候,觉得这两个类远不是一个只能使用一次,一个可以重复使用这么简单,于是就查了各种资料,下面整理一下自己的一些理解吧。首先来一些简单的区别:CountDownLatchCyclicBarrier减计数方式加计数方式计算为0时释放原创 2017-07-11 17:07:47 · 9627 阅读 · 0 评论 -
Java并发编程之线程池的理解与使用
首先说说线程池的作用:一言以蔽之,就是提高系统效率。如果服务器对每个请求都分别创建一个线程的话,在很短时间内就会产生很多创建和销毁的动作,然而服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大。线程池就可以尽量减少这种情况的发生。讲到线程池,不得不说的就是ThreadPoolExecutor这个类了。在ThreadPoolExecutor类中提供了四个构造方法: publ...原创 2017-04-08 11:01:50 · 11019 阅读 · 0 评论 -
浅谈SynchronousQueue、LinkedBlockingQueue和ArrayBlockingQueue
分析这几个阻塞队列是自己在分析线程池的时候,发现Executors类提供的几个静态方法中,newCachedThreadPool()的阻塞队列使用的是SynchronousQueue,而剩下两个用的是LinkedBlockingQueue,好奇为什么不同,于是便研究了一下,写下自己的理解:在研究过程中,发现SynchronousQueue特别有意思,首先一些个人对这个类的理解,感觉这个同步...原创 2017-07-15 16:43:39 · 16692 阅读 · 2 评论
分享