05260多线程

设计一个多线程的程序----火车售票模拟器。假如火车站有100张火车票要售出,现在有5个售票点同时售票,用5个线程模拟模拟这5个售票机的售票情况;

代码:package homework;

public class Test0527 {


public static void main(String[] args) {

  Mashion a1=new Mashion(100);

  for(int i=0;i<5;i++) {

  Thread a=new Thread(new Drawing(a1),"售票机"+((char)('A'+i)));

  a.start();

  }

}

}

class Mashion{

int tickey;

public Mashion (int tickey) {

  super();

  this.tickey=tickey;

}

}

class Drawing extends Thread{

  //int num;

  Mashion a;

  public Drawing (Mashion a) {

  super();

  //this.num=num;

  this.a=a;

 

 

}

  public void run() {

  draw();

  }

  void draw() {

  while(a.tickey>0) {

  synchronized(a) {

    if(a.tickey==0) {

    System.out.println("余票不足");

    return;

   

    }

    try {

    Thread.sleep(1000);

    }catch(InterruptedException e){

    e.printStackTrace();

    }

    a.tickey--;

  }

 

  System.out.println(Thread.currentThread().getName()+"卖了编号为"+a.tickey+"的票");

  }

}

}

代码截图:

图片发自简书App

图片发自简书App

运行截图:

图片发自简书App

图片发自简书App

注意:

运用多线程时,要用sychronized去让线程避免同时进行,导致数据错误。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 2,998评论 1 18
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,510评论 1 15
  • JUC 原创者:文思,感谢尚硅谷,资料来源于尚硅谷 目录: 1、volatile关键字与内存可见性 2、原子变量与...
    文思li阅读 2,396评论 0 1
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,421评论 0 4
  • 7月20日知识点 今天的主要内容——线程 线程线程的基本概念线程与进程的区别线程的两种创建方式(掌握)注意线程两种...
    须臾之北阅读 13,732评论 0 4