这篇文章给大家介绍Java 多线程的火车站售票实例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
package com.thread;/**
题目: 人们在火车站的售票窗口排队买火车票
1. 北京西站开门
2. 打开售票窗口
3. 北京西站有10张去长沙的票
4. 打开2个售票窗口,
5 假设每个售票窗口每隔1秒钟买完一张票
1. 根据 名词 找类
人们(Person), 火车站(Station),火车票(Ticket) , 售票窗口e 是火车站的线程
*/import java.util.*;public class TestTrain {
public static void main(String[] args) { //火车西站开门
Station station = new Station("火车西站"); //开窗口
//Thread win1=station.openWindow("普通窗口");
Thread win2 = station.openWindow("学生窗口"); //窗口1 开始售票
//设置线程优先级 setPriority()
//win2.setPriority(Thread.MAX_PRIORITY);
//win1.start();
win2.start(); try {
Thread.sleep(2000);//2 妙的时候 线程停止 stop()
//interrupt() 打断线程
//win2.stop();
win2.suspend();//展厅
Thread.sleep(4000);
win2.resume();
} catch (Exception e) {
e.printStackTrace();
}
}
}class Station implements Runnable { private String name;//火车站的名称
private String[] persons = { "赵海洋", "王锐", "宋沙", "李欣伟", "徐文晓", "孟令强", "王大卫", "李宝琴", "王浩" };// 火车站排队 买票的人
private int i = -1; public Station(String name) { super(); this.name = name;
} // 打开售票窗口 学生窗口,普通窗口,军人窗口
//售票窗口 是线程 Thread
public Thread openWindow(String name) { return new Thread(this, name);
} //火车站售票
public void sale() { try { while (i < persons.length - 1) {
i++;
String person = persons[i];
System.out.println(person + " " + Thread.currentThread().getName() + " 买了一张北京到上海的火车票");
Thread.sleep(2000);
}
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void run() { //开始售票
sale();
} public String getName() { return name;
} public void setName(String name) { this.name = name;
}
}
关于Java 多线程的火车站售票实例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://blog.itpub.net/10054744/viewspace-2214861/