一个简单多线程购票Demo
Posted mzxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单多线程购票Demo相关的知识,希望对你有一定的参考价值。
package thread; public class Test02
//定义初始票数 public static int chepiao = 20; public static void main(String[] args)
Test02 t = new Test02();
//匿名类创建线程 Thread t1 = new Thread() @Override public void run()
//加同步锁 synchronized(Test02.class)
//卖完就停止 if(chepiao<=0) return; // TODO Auto-generated method stub try t.jianfa(); catch (InterruptedException e) // TODO Auto-generated catch block e.printStackTrace(); super.run(); ; //启动30个线程 for(int i = 1;i<30;i++) new Thread(t1).start(); //票数-1 public synchronized void jianfa() throws InterruptedException chepiao--; System.out.println("线程: "+Thread.currentThread().getName()+",抢到1张票,剩余"+chepiao+"张!");
备注:在对变量进行共享线程时,最好使用AtomicInteger 进行自增或递减操作
以上是关于一个简单多线程购票Demo的主要内容,如果未能解决你的问题,请参考以下文章