当前位置: 移动技术网 > IT编程>开发语言>Java > 【JavaSE】多线程Part2(12)

【JavaSE】多线程Part2(12)

2020年07月18日  | 移动技术网IT编程  | 我要评论

引言

  • 健身平台期来的有点早~
  • 一个全民狂热,盲目服从的社会是最可怕的

知识点总结

在这里插入图片描述

线程的状态

线程的生命周期中有五种运行状态

  • 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="

                    

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网