自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (1)
  • 收藏
  • 关注

原创 Semaphore浅析

背景在之前的文章中介绍了ReentrantLock、Condition和CountDownLatch这些在JAVA多线程中常用的类,它们各有各的使用场景。ReentrantLock通常用于需要可重入锁定、带超时时间的获取锁等场景,Condition通常用于将线程加入条件等待队列/唤醒的场景,CountDownLatch通常用于在程序执行过程中设置等待点,待一定数额的线程全部到达等待点之后集合在...

2018-09-08 21:56:05 656

原创 CountDownLatch浅析

背景前边的文章中已经介绍了JAVA多线程并发工程实践中一批常用的类,比如最为核心的AQS(AbstractQueuedSynchronizer),基本上JAVA多线程并发实践中的常用类的实现都与它能扯上关系;比如ReentrantLock,它实现了可重入的锁,一定程度上弥补了synchronized关键字的不足;比如Condition,它与ReentrantLock相结合,实现了条件等待队列,...

2018-09-08 18:40:13 1440

原创 Condition浅析

背景我们在谈到多线程并发访问临界资源的时候,通常会想到Object类的monitor锁和wait/notify(条件等待/通知)操作。很多同学会想问,既然有了加锁/解锁机制,为什么还要引入条件等待/通知操作呢?原因在于,当A线程对临界资源加锁后(排他锁),其他线程将无法再次获取该临界资源,直到A线程将锁释放。如果A线程执行很久,那么其他线程将在很长一段时间内无法持有临界资源的锁。但是对于Obj...

2018-09-07 21:43:32 397

原创 ReentrantLock浅析

背景在之前的文章中提到了多线程并行操作在工程实践中的重要作用,也提到了如何保持临界资源和串行代码段的线程安全性是十分必要的。在计算机领域,是采用锁来保证线程安全性的。JAVA提供了多种锁的机制,比如早期的synchronized关键字,以它的简单易用被很多早期代码所采纳。但是后来开发者们发现,synchronized关键字没有提供很好的超时机制,且当多线程需要持有的锁相互依赖时容易导致死锁,因...

2018-09-06 23:03:13 225

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除