目录

一. Callable接口

1.1 Callable接口介绍

1.2 Callable接口 与 Runnable接口

1.3 Callable接口的使用

二. ReentrantLock类

2.1 lock() unlock() trylock()

2.2 synchronized关键字 与 ReentrantLock类的区别

三.  Semaphore信号量

3.1 PV操作

3.2 二元信号量

 四. CountDownLatch类

4.1 CountDownLatch类的使用

五. 总结


一. Callable接口

1.1 Callable接口介绍

1.2 Callable接口 与 Runnable接口

1.3 Callable接口的使用


二. ReentrantLock类

2.1 lock() unlock() trylock()

lock(): 加锁

unlock(): 解锁 (需要注意unlock不被调用的问题, 也就是线程提前终止)

trylock(): 不会阻塞, 加锁成功,返回true; 加锁失败, 返回false. 调用者根据返回值来决定下一步该做什么.

2.2 synchronized关键字 与 ReentrantLock类的区别


三.  Semaphore信号量

Semaphore(信号量), 描述了某种可用资源的个数.

3.1 PV操作

申请一个资源, 计数器就会 +1.  acquire

释放一个资源, 计数器就会 -1.   release

注意: 可用资源个数为0时, 再继续申请, 就会阻塞.

3.2 二元信号量


 四. CountDownLatch类

使用多线程, 经常将一个大任务拆分成多个小任务, 从而提升程序的运行效率.

4.1 CountDownLatch类的使用


五. 总结

11-04 23:59