Java并发
文章平均质量分 76
StackOverFlower
18年硕士毕业,就职于字节跳动,直播中台研发,负责榜单、红包等服务。
展开
-
Java线程池
java线程池。在jdk5之后为我们提供了线程池,只需要使用API,不用去考虑线程池里特殊的处理机制。jdk5线程池分好多种,固定尺寸的线程池、可变尺寸连接池等。常用的是ThreadPoolExecutor,它的构造方法如下:public ThreadPoolExecutor(int corePoolSize, int max原创 2017-04-30 21:50:45 · 1384 阅读 · 0 评论 -
Java并发之CountDownLatch的使用和源码解析
CountDownLatch构造方法它在初始化时候,可以通过构造函数新建一个类似于计数器的功能。 public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count < 0"); this.sync = new Sync(coun原创 2017-05-03 13:13:03 · 398 阅读 · 0 评论 -
java---interrupt、interrupted和isInterrupted的区别
1、interrupt() interrupt方法用于中断线程。调用该方法的线程的状态为将被置为"中断"状态。注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”,就会抛出中断异常。原创 2017-07-11 16:04:52 · 463 阅读 · 0 评论 -
死锁产生的必要条件
死锁产生的原因及四个必要条件产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每原创 2017-07-09 23:55:23 · 404 阅读 · 0 评论 -
锁和分布式锁的一些理解
一、锁1.自旋锁自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁2.互斥锁互斥锁是阻塞锁,当某线程无法获取互斥锁时,该线程会被直接挂起,不再消耗CPU时间,当其他线程释放互斥锁后,操作系统会唤醒那个被挂起的线程。阻塞锁可以说是让线程进入阻塞状态进行等待,当获原创 2017-09-20 09:56:32 · 1730 阅读 · 0 评论