现在的位置: 首页 > 编程语言 > 正文

Java多线程模拟电影售票过程

2020年02月13日 编程语言 ⁄ 共 1137字 ⁄ 字号 评论关闭

用多线程模拟电影售票过程(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); } } }}

结果显示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Java多线程模拟电影售票过程

以上就上有关Java多线程模拟电影售票过程的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.