您好,登錄后才能下訂單哦!
這篇文章給大家介紹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 多線程的火車站售票實例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。