卖票小程序(二):解决Thread线程安全隐患!

第二篇文章内容

class Ticket implements Runnable//extends Thread//实现Runnable接口

{

public int tic = 100;

Object obj = new Object();

public void run()

{

while(true)//默认为真

{

synchronized(obj)//同步代码块

{

if(tic>0)

{//如果票数大于0则执行如下代码。

try

{Thread.sleep(10);}

catch (Exception e)

{

}

System.out.println(Thread.currentThread().getName()+"sole...."+tic--);//定义线程名称并使票数自减。

}

}

}

}

}

class TicketDemo 

{

public static void main(String[] args) 

{

Ticket t = new Ticket();//定义Ticket对象.

Thread t1 = new Thread(t); //将Runnable接口的子类对象作为实际参数传入Thread类的构造函数当中。

Thread t2 = new Thread(t);

Thread t3 = new Thread(t);

Thread t4= new Thread(t);

t1.start();

t2.start();

t3.start();

t4.start();

//启动4个线程.

}

}

完成小程序!

你可能感兴趣的:(object,接口,程序,public)