【JavaSE】多线程Part2(12)
程序员文章站
2022-03-27 19:49:13
引言健身平台期来的有点早~知识点总结...
引言
- 健身平台期来的有点早~
- 一个全民*,盲目服从的社会是最可怕的
知识点总结
线程的状态
线程的生命周期中有五种运行状态
- New
- Runnable
- Blocked
- Terminated
- Waited
(老师的图,自己画的太丑了·~~)
线程通信
多个线程处理同一资源,但是进行的任务却不相同。
下面以早餐买包子为例介绍:
本例包含四个类
1.资源类
Baozi.java
2.包子铺
Merchat.java
3.顾客
Foodie.java
4.测试类
TestMain.java
资源类(包子)
public class BaoZi {
String pi;
//包子皮
String xian;
//包子馅
boolean state=false;
//包子是否做好
}
包子铺
包子铺的任务
1.先判断包子还有没有,有的话就等待,等顾客吃完;
2.包子没有了,就开始做,做好之后给顾客吃;
public class Merchat extends Thread{
private BaoZi bz;
//以包子作为锁的对象,能够避免线程安全问题
public Merchat(BaoZi bz){
this.bz=bz;
}
public void run() {
int count=0;
while(true){
synchronized (bz){
//保证锁的参数对象为同一个
if(bz.state==true){
try {
bz.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(count%2==0){
bz.xian="