Java多線程模擬電影售票過程
用多線程模擬電影售票過程(Java實(shí)訓(xùn)),供大家參考,具體內(nèi)容如下
實(shí)訓(xùn)目的:
多線程的實(shí)現(xiàn)、線程同步
實(shí)訓(xùn)要求:
總票數(shù)和售票窗口數(shù)由鍵盤輸入,用每個(gè)線程處理一個(gè)窗口的售票。

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("請(qǐng)輸入總票數(shù):");
ticks=sc.nextInt();
System.out.println("請(qǐng)輸入售票窗口數(shù):");
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()
+"正在發(fā)售第"+tickets--+"張票");
}catch(InterruptedException e) {
e.printStackTrace();
}finally {
lock.unlock();
}
}
else {
System.exit(0);
}
}
}
}
結(jié)果顯示:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java讀取文件:char的ASCII碼值=65279,顯示是一個(gè)空字符的解決
這篇文章主要介紹了java讀取文件:char的ASCII碼值=65279,顯示是一個(gè)空字符的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Mybatis SqlSessionFactory與SqlSession詳細(xì)講解
SqlSessionFactory是MyBatis的核心類之一,其最重要的功能就是提供創(chuàng)建MyBatis的核心接口SqlSession,所以我們需要先創(chuàng)建SqlSessionFactory,為此我們需要提供配置文件和相關(guān)的參數(shù)2022-11-11
Java中基于DeferredResult的異步服務(wù)詳解
這篇文章主要介紹了Java中基于DeferredResult的異步服務(wù)詳解,DeferredResult字面意思是"延遲結(jié)果",它允許Spring MVC收到請(qǐng)求后,立即釋放(歸還)容器線程,以便容器可以接收更多的外部請(qǐng)求,提升吞吐量,需要的朋友可以參考下2023-12-12
SpringBoot整合騰訊云COS對(duì)象存儲(chǔ)實(shí)現(xiàn)文件上傳的示例代碼
本文主要介紹了SpringBoot整合騰訊云COS對(duì)象存儲(chǔ)實(shí)現(xiàn)文件上傳的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Mybatis-Plus中Mapper的接口文件與xml文件相關(guān)的坑記錄
這篇文章主要介紹了Mybatis-Plus中Mapper的接口文件與xml文件相關(guān)的坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
基于Java SSM實(shí)現(xiàn)在線點(diǎn)餐系統(tǒng)
本項(xiàng)目基于Java SSM框架實(shí)現(xiàn)在線點(diǎn)餐系統(tǒng),主要實(shí)現(xiàn)系統(tǒng)的在線點(diǎn)餐功能。文中的示例代碼講解詳細(xì),感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-02-02
Java Calendar類使用總結(jié)及使用實(shí)例
這篇文章主要介紹了Java Calendar類使用總結(jié)及使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

