java多线程

并发与并行

在这里插入图片描述

进程与线程

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

线程的调度

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

线程优先级

在这里插入图片描述
使用yiled方法和设置优先级最终并不能真正控制线程的调度,决定权在调度器那里。

多线程创建

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

多线程执行原理

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

Thread类常用方法

在这里插入图片描述
join方法,等待调用该方法的线程执行结束,才往后执行
在这里插入图片描述
interrupt打断
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
sleep的线程打断标记为false,表示为假打断,正常执行的线程被打断,该标记为true,表示为真打断,可用该标记人为决定该线程是否继续执行。

使用Runnable接口创建线程

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

使用Runnable的好处

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

多线程匿名内部类写法

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

在这里插入图片描述

FutureTask创建多线程

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

线程安全

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

线程不安全产生原因

在这里插入图片描述

线程不安全问题解决

线程同步

在这里插入图片描述

同步代码块

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

同步原理

在这里插入图片描述

同步方法

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

Lock锁

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

线程的状态

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

wattting状态,需要notify唤醒

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
sleep表示休眠,不释放锁,睡醒后不一定就能运行,需要cpu分配时间片。yiled表示礼让,表示当前线程让出cpu时间片,但是不一定成功,因为可能只存在当前一个线程的情况,这两者都可以让出cpu。

线程间通信

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

等待唤醒机制

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

生产者消费者问题

在这里插入图片描述
生产者
在这里插入图片描述在这里插入图片描述
消费者
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值