
多线程
文章平均质量分 85
程序员阿军
程序人生,学无止境!
在此感谢大家的关注,后续会持续提供更优质的技术文章,谢谢大家!
展开
-
多线程 ForkJoinPool
背景:ForkJoinPool的优势在于,可以充分利用多cpu,多核cpu的优势,把一个任务拆分成多个“小任务”,把多个“小任务”放到多个处理器核心上并行执行;当多个“小任务”执行完成之后,再将这些执行结果合并起来即可。这种思想值得学习。...原创 2018-09-11 18:23:13 · 7255 阅读 · 0 评论 -
CountDownLatch的使用
countDownLatch的概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了...原创 2018-12-13 18:49:16 · 587 阅读 · 0 评论 -
线程通信实现方式
第一种方式是wait和(notify)notifyAll的方式,一个线程负责变量的新增,一个线程负责变量的相减,一个线程操作完,另一个线程等待,具体操作请看下面的代码 这里需要注意的是一定尽量要用while判断,不要用if判断 第一消除notifyAll() 引起的并发问题,第二在while循环里而不是if语句下使用wait。这样,循环会在线程睡眠前后都检查wait的条件,并在条件实际上...原创 2018-12-14 09:34:19 · 316 阅读 · 0 评论 -
线程状态
线程的几种状态转换 线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。 3、运行状态(Running):...转载 2018-12-14 10:48:11 · 179 阅读 · 0 评论 -
线程死锁
先简单用生活列子介绍死锁, 2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同时占用一个资源,等待另一个资源,这个时候甲在等待乙吃完并释放它占有的筷子,同理,乙也在等待甲吃完并释放它占有的筷子,这样就陷入了一个死循环,谁也无法继续吃饭。。 ...原创 2018-12-14 13:00:04 · 395 阅读 · 0 评论