Java并发编程
2022年4月5日大约 2 分钟
Java并发编程
本文主要记录Java并发编程的相关笔记
并发编程入门(上)
J.U.C是什么?
java.util.concurrent在并发编程中使用的工具类
Lock接口
Lock锁实现提供了比使用synchronized
可以获得的更广泛的锁操作。它们允许更灵活的结构,可能具有非常不同的属性,并且可能支持多个关联的条件对象。
创建线程的方式
集成Thread类、实现Runnable接口
线程间通信
当多个线程共同操作共享资源时,线程间通过某种方式互相告知自己的状态,以避免无效的资源争夺。
定制化线程间通信
当多个线程抢占同一个资源时,指定各个线程的执行顺序。
列举集合线程安全案例
List<String> list = Collections.synchronizedList(new ArrayList<>());
List<String> list = new CopyOnWriteArrayList<>();
线程8锁问题
列举了当synchronized
在代码不同位置时的区别
Callable接口
与Runnable接口类似,也是一种实现多线程的方法,与Runnable相比,Callable有返回值。
并发编程入门(下)
JUC辅助类
- CountDownLatch:
- CyclicBarrier
- Semaphore
ReentrantReadWriteLock读写锁
ReentrantReadWriteLock表示可重入读写锁,ReentrantReadWriteLock中包含了两种锁,读锁ReadLock和写锁WriteLock,可以通过这两种锁实现线程间的同步
阻塞队列
ThreadPool线程池
一个非常重要的多线程处理方式