一、为什么要用多线程
充分利用多核CPU,提高执行效率。
二、线程安全
存在共享资源就会引发线程安全问题,线程安全问题可以用synchronized或者Lock或者CAS无锁实现线程之间的同步:
1、synchronized
①作用到静态方法上
②作用到非静态方法发上
③代码块synchronized(this){。。。}
④代码块synchronized(XXX.class){。。。}
2、Lock
3、CAS
AQS(AbstractQueueSyhchronized)里的实现规则,是使用期望数据和内存中的数据对比符合预期则更新
三、线程的创建
直接new Thread()、继承Thread类、实现Runnable接口、线程池
四、线程的状态
五、线程池
六、线程池的线程数的设定