public class Demo02
{
public static void main(String args[]){
Runnable mt = new MyThread();
Thread t1 = new Thread(mt);
Thread t2 = new Thread(mt);
Thread t3 = new Thread(mt); t1.start();
t2.start();
t3.start();
}
}class MyThread implements Runnable{
private int piao = 100;
public void run(){
for (int i=0;i<200 ;i++ )
{if(piao>0)
System.out.println(this + "卖票 ——" + (piao--));
}
}
}改成:
public class Demo02
{
public static void main(String args[]){
Runnable mt = new MyThread();
Thread t1 = new Thread(mt);
Thread t2 = new Thread(mt);
Thread t3 = new Thread(mt); t1.start();
t2.start();
t3.start();
}
}class MyThread extends Thread{
private int piao = 100;
public void run(){
for (int i=0;i<200 ;i++ )
{if(piao>0)
System.out.println(this + "卖票 ——" + (piao--));
}
}
}
改后的程序 为什么也能实现资源共享?
上面这一句Thread的构造函数接收的是Runnable类型。你MyThread extends Thread达到了implements Runnable的效果,因为Thread implements Runnable。随便说一下,你的程序是有问题的。
正常情况下,多线程程序对于共享资源(这里是piao)的修改必须做同步。