多线程售票问题
package com.carlinfo.bigdata;
/**
* 多线程售票问题
*/
public class Ops4
{
public static void main(String[] args)
{
/**
* new一个内部类ticketTask实现Runnable,放进线程
*/
TicketTask ticketTask = new TicketTask();
Thread t1 = new Thread(ticketTask, "t1");
Thread t2 = new Thread(ticketTask, "t2");
t1.start();
t2.start();
}
}
class TicketTask implements Runnable
{
/**
* 总票数
*/
int totalTicket = 10000;
@Override
public void run()
{
while (totalTicket > 0)
{
/**
* 在循环里面加一把锁
*/
synchronized (this)
{
if (totalTicket > 0)
{
System.out.println(Thread.currentThread().getName() + "-->正在售出第" + (totalTicket--));
}
}
}
}
}