赞
踩
国际惯例,先上代码:
- package com.itqs;
-
- import java.util.ArrayList;
- import java.util.List;
-
-
- public class ThreadStation {
-
- //定义售票线程类(也就是窗口)
- public static class Station extends Thread{
- //构造方法给线程名字赋值
- public Station(String name) {
- super(name);
- }
- //票数要静态定义
- static int tick=5;
- //静态钥匙
- static Object ob ="key"; //值是任意的
- //重写run方法,实现售票操作
- @Override
- public void run() {
- List<Integer> list = new ArrayList<>();
- while (tick>0) {
- synchronized(ob) { //必须使用一个同步锁,进去的人会把钥匙拿在手上,出来后才能交出钥匙
- if (tick>0) {
- System.out.printf("%s卖出了第%d张票 \n",getName(),tick);
- list.add(tick);
- tick--;
- }else {
- System.out.printf("%s:票已售空 \n",getName());
-
- }
- }
- try {
- sleep((int)(Math.random()*3000)+1); //随机休息1-3000ms
- }catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- Sys
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。