单例模式+生产者消费者问题+死锁
真正的多线程开发,降低耦合性
多线程就是一个独立的资源类,没有任何附属操作
属性和方法
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Synchronized和lock区别
-------------------------------------------------------------------------------------------------------------------------------------------------------
线程之间的通信问题:生产者和消费者问题。等待唤醒, 通知唤醒
线程交替执行 A B 操作同一个变量 num=0
流程:判断等待,业务,通知
八锁
锁的是对象或者是Class类模板;
普通方法锁的是调用者对象
static方法锁的是Class类模板
-------------------------------------------------------------------------------------------------------------------------------------------------------
多线程集合
Vector 底层Synchronize 提起synchronize就是效率低
CopyOnWriteArrayList 、CopyOnWriteArraySet 写入时复制 lock锁 复制出一个新数组,add数据,然后再把新数据复制给旧数组
ConcurrentHashMap 分段锁
创建线程三种方式:Thread继承类、Runnable接口、Callable接口(可以有返回值、可以抛出异常)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
CountDownLatch 减法计数器 测试四家OCR识别效果,开启四个线程去测试,完成一个线程-1,CountDownLatch达到0再唤醒主线程
CyclicBarrier 加法计数器
Semaphere 信号量 多个共享资源互斥的使用, 并发限流、控制最大线程数
semaphere.acqueire() 获得 加入已经满了,等待,等待释放为止
semaphere.release() 释放 会将信号量释放 +1,唤醒等待的线程
-------------------------------------------------------------------------------------------------------------------------------------------------------
ReadWriteLock 读写锁
读锁:共享锁 一次可以被多个线程共享
写锁:独占锁 一次只能被一个线程占有
读读:可以共享
读写:不可共享
写写:不可共享
-------------------------------------------------------------------------------------------------------------------------------------------------------
BlockingQueue 阻塞队列
场景:多线程并发处理,多线程池
-------------------------------------------------------------------------------------------------------------------------------------------------------
线程池(重点)
三大方法:
七大参数:
银行办理业务讲解线程池原理
四种拒绝策略:
- 中止策略:无特殊场景。
- 丢弃策略:无关紧要的任务(博客阅读量)。
- 弃老策略:发布消息。
- 调用者运行策略:不允许失败场景(对性能要求不高、并发量较小)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现