JUC(java.util.conccurrent) : concurrent(并发)是多线程相关的组件
Callable接口
也是一种创建线程的方式,适用于想让某个线程执行逻辑后,返回一个结果
相比之下Runnable不关注结果


改进

以下是Callable的基本使用方法

运行结果:

ReentrantLock


信号量Semaphore
也就是计数器,来描述"可用资源"的个数

结果显示:
下述打印结果可以观察到我们的p操作只执行了4次后就开始阻塞等待!


CountDownLatch
适用于多个线程完成一系列任务时,用来衡量任务的进度是否完成.比如把一系列任务拆分成小的任务,让这些小的任务并发执行,就可以使用CountDownLatch来判定是否都完成了.

**代码示例: **

**结果: **

我们可以清楚的看到,此时代码执行了10次之后返回的
对上述的for循环进行修改

ConcurrentHashMap
改进1

改进2




















