您好,登錄后才能下訂單哦!
用多線程模擬電影售票過程(Java實訓),供大家參考,具體內容如下
實訓目的:
多線程的實現、線程同步
實訓要求:
總票數和售票窗口數由鍵盤輸入,用每個線程處理一個窗口的售票。
Test.java
package program5; import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int ticks,windows; System.out.println("請輸入總票數:"); ticks=sc.nextInt(); System.out.println("請輸入售票窗口數:"); windows=sc.nextInt(); tickets lockThread=new tickets(); lockThread.setTickets(ticks); for(int i=1;i<=windows;i++) new Thread(lockThread,"窗口"+i).start(); } }
tickes.java
package program5; import java.util.concurrent.locks.*; public class tickets implements Runnable { private int tickets; public int getTickets() { return tickets; } public void setTickets(int tickets) { this.tickets = tickets; } private final Lock lock=new ReentrantLock(); @Override public void run() { // TODO Auto-generated method stub while(true) { lock.lock(); if(tickets>0) { try { Thread.sleep(100); System.out.println(Thread.currentThread().getName() +"正在發售第"+tickets--+"張票"); }catch(InterruptedException e) { e.printStackTrace(); }finally { lock.unlock(); } } else { System.exit(0); } } } }
結果顯示:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。