java基础多线程之销售示例:
class SaleTicketDemo
{
public static void main(String[] args)
{
Ticket ticket = new Ticket();
for(int i=1;i<6;i++)
{
new Thread(ticket,"window "+i).start();
try
{
Thread.sleep(10);
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}
}
}
}
class Ticket implements Runnable
{
private int num = 1000;
public void run()
{
while(num>0)
{
sale();
}
}
public synchronized void sale()
{
if(num>0)
{
try
{
Thread.sleep(10);
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}
System.out.println(Thread.currentThread().getName() + " saleing... "+num--);
}
}
}
{
public static void main(String[] args)
{
Ticket ticket = new Ticket();
for(int i=1;i<6;i++)
{
new Thread(ticket,"window "+i).start();
try
{
Thread.sleep(10);
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}
}
}
}
class Ticket implements Runnable
{
private int num = 1000;
public void run()
{
while(num>0)
{
sale();
}
}
public synchronized void sale()
{
if(num>0)
{
try
{
Thread.sleep(10);
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}
System.out.println(Thread.currentThread().getName() + " saleing... "+num--);
}
}
}