话不多说直接上代码,状态机模式主要是用在有生命周期或者每个阶段有依赖的情况下,例如视频编解码就会有强烈的生命周期如果跨周期或者没有准备好等等情况就会抛出 IllegalStateException 这个我在做视频存储的时候算是见识到了。
[Read More]
生产者消费者模式
该模式一般作为多线程共享资源使用
生产者模式
常用方式
使用 BlockingQueue
使用 BlockingQueue 核心是多个生产者和消费者共用一个 queue 生产者去阻塞 offer (offer 可以添加超时机制,一直无人消费就丢弃), 消费者去 take
使用 ReentrantLock 配合 Condition
消费者与生产者共享一把 ReentrantLock 然后使用不同的 Condition 作为触发条件,消费者在去消费的时候发现数据为空 则使用 empty Condition 发信号,并且在 full Condition await,反之亦然
[Read More]
Java 线程交替打印
使用 ReentrantLock 及 Condition 实现
经典面试题,使用线程实现交替打印,这里是使用的 ReentrantLock 可重入锁配合 Condition 实现交替打印。
[Read More]
Kotlin 特性学习(5)通道和 Actor
Kotlin 通道与 Actor
脑图
[Read More]
Kotlin 特性学习(4)协程异常与监督
Kotlin 协程异常及监督机制
脑图
[Read More]