Java多线程模拟电影售票过程
时间:2021-07-10 09:30:48|栏目:JAVA代码|点击: 次
用多线程模拟电影售票过程(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 countDownLatch如何实现多线程任务阻塞等待
本文标题:Java多线程模拟电影售票过程
本文地址:http://www.codeinn.net/misctech/155104.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




