星空网 > 软件开发 > Java

[javaSE] 多线程(售票例子)

需求:简单的买票程序,多个窗口卖票,多线程

 

定义一个类Ticket实现Runnable接口

定义成员属性int类型的票数nums

实现run()方法,run方法中

while(true)的死循环,打印nums--

 

获取Ticket对象,new出来

获取Thread()对象,new出来,构造参数:Runable对象

调用Thread对象的start()方法,开启线程

 

此时会有线程安全问题,使用synchronized同步代码块解决安全问题

 

避免死锁问题,同步中嵌套同步,而锁不同

class Ticket implements Runnable {  private int nums = 100;  @Override  public void run() {    while (true) {      synchronized (this) {        if (nums > 0) {          try {            Thread.sleep(10);          } catch (Exception e) {            e.printStackTrace();          }          System.out.println(Thread.currentThread().getName() + "==="              + (nums--));        }else{          break;        }      }    }  }}public class TicketDemo {  /**   * @param args   */  public static void main(String[] args) {    Ticket ticket = new Ticket();    new Thread(ticket).start();    new Thread(ticket).start();    new Thread(ticket).start();    new Thread(ticket).start();  }}

[javaSE] 多线程(售票例子)

 




原标题:[javaSE] 多线程(售票例子)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

如何用摄影作品表现“芳草鲜美,落英缤纷”的:https://www.vstour.cn/a/411247.html
70岁以上景区门票优惠70周岁还是虚岁?:https://www.vstour.cn/a/411248.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流