Java高级多线程

线程池

在这里插入图片描述

线程池原理

在这里插入图片描述

线程API

在这里插入图片描述
在这里插入图片描述

创建线程池

1、创建鼓点线程个数的线程池

在这里插入图片描述
在这里插入图片描述

2、创建缓存线程池,由任务多少来决定

在这里插入图片描述
在这里插入图片描述

3、创建单线程线程池

在这里插入图片描述
在这里插入图片描述

4、创建调度线程池

在这里插入图片描述
在这里插入图片描述

Callable接口–创建线程方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Callable接口结合线程池使用

在这里插入图片描述
在这里插入图片描述

future接口

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

线程同步与异步

同步
在这里插入图片描述
异步
在这里插入图片描述

Lock锁–同步

在这里插入图片描述

重入锁

在这里插入图片描述
案例1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
案例2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

读写锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在用重入锁来做个比较
在这里插入图片描述
要慢上不少
在这里插入图片描述

线程安全集合

在这里插入图片描述

在这里插入图片描述

问题演示

使用线程不安全的集合
在这里插入图片描述
在这里插入图片描述

使用Collections中的工具方法

在这里插入图片描述

1、Collections.synchronizedList(现在不常用)

在这里插入图片描述
不会出现刚才的问题
在这里插入图片描述

2、CopyOnWriteArrayList

在这里插入图片描述
例子1:
在这里插入图片描述
在这里插入图片描述
例子2:
在这里插入图片描述
在这里插入图片描述

3、CopyOnWriteArrayList

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、Queue接口

在这里插入图片描述
演示单线程(线程不安全)的使用
在这里插入图片描述
在这里插入图片描述

ConcurrentLinkedQueue

线程安全可高效读写的队列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

BlockingQueue(堵塞接口)

在这里插入图片描述
在这里插入图片描述
演示1:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
生产面包问题
在这里插入图片描述
在这里插入图片描述

5、ConcurrentHashMap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值