前言
记录多线程常见问题及解决方案。
一、多线程常用类
多线程源码,常见多线程问题解决方案的(20%-30%):用后俩类就可以解决。
实现思想:AQS
实现方式:Lock
==》AtomicInteger
==》CountDownLatch
==》ConcurrentHashMap
==》ConcurrentSkipListMap
二、常见问题
2.1验证线程共享资源问题
2.2countdownlatch用法
多线程问题解决思路:5个线程跑完,再跑最后一个(5个数,跑完一个减一,用CountDownLatch),也可以用CyclicBarrier;
2.3 AtomicInteger
a++,两个操作,线程不安全,解决方式,可以用AtomicInteger,将两个步骤搞成一步里。
2.4 锁
读写锁
乐观锁、悲观锁
不公平锁