原子类
CAS --- 存在aba问题
ABA--- 解决办法,,,时间戳----
Lock
可重入锁
读写锁 同时读 读不能写 不能同时写,写不能读
volatile 修饰 变量 有一下两个特点:
不同线程之间,变量修改可见
不能保证所有的,禁止指令重排序。
多线程缺点:
处理任务的线程创建销毁耗时耗资源
多线程的切换消耗资源
----解决办法,使用线程池
ThreadPoolExecutor
--全参构造函数
--常用的线程池
Executors工具类内部使用ThreadPoolExecutor提供了4个创建线程池的方法。
newCachedThreadPool
可缓存线程池,灵活回收空闲,无可回收则新建线程。--线程创建数量少使用。
newFixedThreadPool
固定线程数,, 空闲线程不会释放 空间换时间----适合一直有任务。
newSingleThreadExecutor
单线程化, 保证顺序执行任务
newScheduleThreadPool
支持定时,周期的执行任务