Day21 单例模式、死锁、线程通信、线程池
1. 单例模式
1.1 概述
让某个类只能实例化对象一次,保证只有一个对象,每次用的都是同一个对象
1.2 实现
传统的写法在多线程中是不行的
可能有多个线程同时进入s==null判断,导致创建多个对象
如果直接对方法加锁是可以的,但是效率低,我们只需要保证创建对象的时候,加锁,只要创建过对象之后,就不加锁即可
这样就能保证 创建对象的时候 排队,但是只创建一次
第二次在进行多线程获取对象的时候,就不需要排队了,因为在外面的s==null 就为false了
2. 死锁
2.1 概述
2.2 原理
2.3 代码实现
3.1 概述
3.1 概述
3.2 打印奇数和偶数
3.3 生产者和消费者
4. 线程池
4.1 概述
4.3 使用方式
4.3.1 NewCachedThreadPool
4.3.2 NewFixedThreadPool
4.3.3 NewScheduledThreadPool
4.3.4 NewSingleThreadPool