public class MaiPiao {
public static void main(String[] args) {
//用继承Thread类实现
// MaiPiao_pro m=new MaiPiao_pro();
// m.setName("售票窗口一");
// m.start();
// MaiPiao_pro m1=new MaiPiao_pro();
// m1.setName("售票窗口二");
// m1.start();
// MaiPiao_pro m2=new MaiPiao_pro();
// m2.setName("售票窗口三");
// m2.start();
// MaiPiao_pro m3=new MaiPiao_pro();
// m3.setName("售票窗口四");
// m3.start();
// MaiPiao_pro m4=new MaiPiao_pro();
// m4.setName("售票窗口五");
// m4.start();
//用实现Runnable接口实现
MaiPiao_run run=new MaiPiao_run();
new Thread(run).start();
new Thread(run).start();
new Thread(run).start();
new Thread(run).start();
new Thread(run).start();
new Thread(run).start();
new Thread(run).start();
new Thread(run).start();
}
}
class MaiPiao_pro extends Thread{
public static int piao_num=100;
boolean yes_no=true;
public void run(){
while(yes_no){
if(piao_num>0){
System.out.println(Thread.currentThread().getName()+"又卖了一张,卖的是第"+piao_num+"号的票,剩余"+ --piao_num +"张");
}else if(piao_num<=0){
yes_no=false;
}
}
}
}
class MaiPiao_run implements Runnable{
private int piao=100;
boolean boo=true;
public void run() {
while(boo){
if(piao>0){
System.out.println(Thread.currentThread().getName()+"又卖了一张,卖的是第"+piao+"号的票,剩余"+ --piao +"张");
}else if(piao<=0){
boo=false;
}
}
}
}
本文通过一个具体的Java多线程示例演示了如何模拟多个售票窗口同时进行售票的过程。示例中使用了两种方式实现多线程:一种是通过继承Thread类,另一种是通过实现Runnable接口。此示例有助于理解多线程环境下资源同步的重要性。
332

被折叠的 条评论
为什么被折叠?



