线程池、各种锁、高并发解决方案相关
线程池
- 阻塞队列
- 任务队列中没有任务时阻塞获取任务的线程,使得线程进入wait状态,释放cpu资源。
- 有任务时才唤醒对应线程从队列中取出消息进行执行。
- 任务类型
- CPU密集型任务
- 尽量使用较小的线程池,一般为CPU核心数+1
- IO密集型任务
- 可以使用稍大的线程池,一般为2*CPU核心数。
- 混合
- 分别用不同的线程池去处理
- CPU密集型任务
- 4类
- newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool, newSingleThreadExecutor
- 阻塞队列
乐观锁 悲观锁
- 悲观
- db里的行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
- 乐观
- 在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制
- 乐观锁适用于多读的应用类型,这样可以提高吞吐量
- 悲观
本文作者:
yuqing wang
本文链接: https://satyrswang.github.io/2021/04/05/juc/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://satyrswang.github.io/2021/04/05/juc/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!