
Java并发编程
蒙蒙的林先生
三年Java互联网金融工作经验
展开
-
Java并发编程(一)-什么是并发和创建线程的方式
什么是并发,线程的生命周期,线程优先级,创建线程的三种方式原创 2018-02-12 17:59:48 · 11825 阅读 · 0 评论 -
Java并发编程(二)-线程池和AQS介绍
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲...原创 2018-11-01 11:08:53 · 4745 阅读 · 0 评论 -
Java并发编程(四)-Semaphore信号量
SemaphoreSemaphore翻译成字面意思为 信号量,Semaphore可以控同时访问的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。Semaphore类位于java.util.concurrent包下,它提供了2个构造器:public Semaphore(int perm...原创 2018-11-06 14:39:56 · 6912 阅读 · 0 评论 -
Java并发编程(五)-Lock
Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中)。原创 2018-11-07 15:04:21 · 6497 阅读 · 0 评论 -
Java并发编程(三)-CountDownLatch和CyclicBarrier
CountDownLatchCountDownLatch类利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器: //参数count为计数值 public CountDownLatch(int count) { }; 然后下...原创 2018-11-05 11:24:35 · 6964 阅读 · 0 评论 -
Java并发编程(六)-Phaser
phaser英文意思移相器,相位器,表示“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题,其作用相比CountDownLatch和CyclicBarrier更加灵活。如100个人参加高考需要考四场考试,早上考语文,需要等100人都考完语文才能进行下午的数学,下午的数学都考完才能考明天的综合和英语。操作方法Phaser(int parties),构造方法,与CountDownLat...原创 2018-11-20 14:46:21 · 8368 阅读 · 0 评论