要求:假定总票数是100张
假设 有5个人排队卖票,同一时间只能有一个人买票
票卖出去之后,票数要减少
代码:
/** * */ package com.niit.homework; /** * @author: Annie * @date:2016年6月16日 * @description:假定总票数是100张 假设 有5个人排队卖票,同一时间只能有一个人买票 票卖出去之后,票数要减少 */ public class TicketDemo implements Runnable { int tickt = 100; static String [] name = {"张三","李四","王二","麻子","赵四"}; @Override public void run() { boolean flag = true ; while(flag){ synchronized (this) { for (int j = 0; j <5; j++) { if(Thread.currentThread().getName().equals(name[j])){ --tickt; System.out.println(name[j]+"正在买票,其他人请耐心排队,还有"+tickt+"张票"); } if(tickt <=0){ flag =false; System.out.println("票卖完了,明天再来"); break; } try { Thread.sleep(200); } catch (InterruptedException e) {} } } } } public static void main(String[] args) { TicketDemo ticket = new TicketDemo(); Thread [] threads = new Thread[5]; for (int i = 0; i < threads.length; i++) { threads[i] = new Thread(ticket,name[i]); threads[i].start(); } } }
效果图(其中一部分):
原文:http://www.cnblogs.com/wangmingxia/p/5591664.html