Callable类似Runnable接口,它也是实现线程的一种设计
它的优点就是:相对于Runnable他可以有返回值 可以抛出异常
代码:
获取它的返回值:(细节点:有缓存提高效率 获取返回值结果需等待会阻塞 可采用异步通信处理)
常用的辅助类:
CountDownLatch代码和原理:减法计数器
官方文档解释:
加法计数器:
Semaphore:计数信号量
读写锁:
代码部分:
主线程·:
独占锁(写锁)一次只能被一个线程占有
共享锁(读锁)多个线程可以同时占有
加锁的资源类:
没加锁:存在该线程还没写完就被插入了