java使用多线程创建火车票_java 多线程实现购火车票功能

该博客介绍了两种Java实现多线程购火车票的方法:一是通过继承Thread类,创建多个售票窗口并模拟售票过程;二是实现Runnable接口,同样创建多个窗口,但这种方式更利于资源共享和避免单继承限制。两种方法中,推荐使用实现Runnable接口的方式。
摘要由CSDN通过智能技术生成

实现方式一:继承Thread线程类

public class TestThread2 extends Thread {

//模拟多个窗口买票的场景

private static int num=300;

public void run(){

while(num>0){

//线程安全问题

System.out.println(this.getName()+"卖出了第"+num+"号票!");

num--;

}

}

public static void main(String[] args) {

TestThread2 tt1=new TestThread2();

tt1.setName("窗口一:");

tt1.start();

TestThread2 tt2=new TestThread2();

tt2.setName("窗口二:");

tt2.start();

TestThread2 tt3=new TestThread2();

tt3.setName("窗口三:");

tt3.start();

}

}

方式二:实现runnable接口

public class TestRunble2 implements Runnable{

//模拟多个窗口买票的场景

/*

* 实现Runable接口创建线程的好处:

* 1、资源共享性比继承Thread类好

* 2、避免的Java的单继承约束

*

* 综上所述:建议使用实现Runable方式创建线程

*/

private int num=300;

@Override

public void run() {

while(num>0){

//线程安全问题

System.out.println(Thread.currentThread().getName()+"卖出了第"+num+"号票!");

num--;

}

}

public static void main(String[] args) {

TestRunble2 tr=new TestRunble2();

Thread t=new Thread(tr);

t.setName("-窗口1-:");

t.start();

Thread t2=new Thread(tr);

t2.setName("-窗口2-:");

t2.start();

Thread t3=new Thread(tr);

t3.setName("-窗口3-:");

t3.start();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值