public class MyThread1 extends Thread{
private int ticket=10;
public void run()
{
for(int i=0;i<20;i++)
{
if(this.ticket>0)
System.out.println("i="+i+"卖票:ticket "+this.ticket--);
}
}
}
public class ThreadTicket {
public static void main(String[] args) {
MyThread1 mt1=new MyThread1();
MyThread1 mt2=new MyThread1();
MyThread1 mt3=new MyThread1();
mt1.start();
mt2.start();
mt3.start();
}
}
运行结果:
public class MyThread1 implements Runnable{
private int ticket=10;
public void run()
{
for(int i=0;i<20;i++)
{
if(this.ticket>0)
System.out.println("i="+i+"卖票:ticket "+this.ticket--);
}
}
}
public class ThreadTicket {
public static void main(String[] args) {
MyThread1 mt=new MyThread1();
Thread t1=new Thread(mt);
t1.start();
Thread t2=new Thread(mt);
t2.start();
Thread t3=new Thread(mt);
t3.start();
}
}
运行结果:
学习心得:
第一种方法,每个线程各卖了10张票,共卖30张。每个线程各自卖自己的票,无资源共享;
第二种方法,Runnable实现了多线程的资源共享,通过给三个线程用同一个实例化对象。