JAVA多线程售票问题

来源:互联网 发布:画平面图软件 编辑:程序博客网 时间:2024/05/21 08:45
//定义一个类实现Runnable接口,定义一个需要同步的售票方法,然后重写run方法调用售票的sale方法
[java] view plain copy
  1. class SaleTicket implements Runnable{  
  2.     private int tickets = 100;  
  3.       
  4.       
  5.     private synchronized void sale(){  
  6.         if(tickets > 0){  
  7.             System.out.println(Thread.currentThread().getName() + "卖出 第 "+ (tickets--)+"张票");  
  8.               
  9.             try{  
  10.                 Thread.sleep(100);  
  11.             }catch(InterruptedException e){  
  12.                 e.printStackTrace();  
  13.             }  
  14.         }  
  15.     }  
  16.     public void run(){  
  17.         while(tickets > 0){  
  18.             sale();  
  19.         }  
  20.     }  
  21. }  
  22.   
  23.   
  24. public class JavaTest {  
  25.           
  26.     public static void main(String[] args){  
  27.   
  28.   
  29.         SaleTicket st = new SaleTicket();  
  30.         Thread t1 = new Thread(st, "一号窗口");  
  31.         Thread t2 = new Thread(st, "二号窗口");  
  32.         Thread t3 = new Thread(st, "三号窗口");  
  33.         Thread t4 = new Thread(st,"四号窗口 ");  
  34.         t1.start();  
  35.         t2.start();  
  36.         t3.start();  
  37.         t4.start();  
  38.           
  39.       
  40.           
  41.     }  
  42. }  
0 0
原创粉丝点击