关于线程的问题
1、
class MultiThread
{
public static void main(String[] args)
{
MyThread mt=new MyThread();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
}
}
class MyThread implements Runnable
{
int index=0;
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+":"+index++);
}
}
}
2
class MultiThread
{
public static void main(String[] args)
{
MyThread mt=new MyThread();
mt.start();
mt.start();
mt.start();
mt.start();
}
}
class MyThread extends Thread
{
int index=0;
public void run()
{
while(true)
{
System.out.println(getName()+":"+index++);
}
}
}
以上是两个线程运行的程序,书上说要多用接口的那种,继承的那个程序每一个线程类的对象里都有index变量的值所以没办法达到同一变量的共享的目的。而做为接口的那个程序的4个线程因为mt作为参数传入的对象是同一个对象,所以访问的index变量也是同一个。
对这话我不太明白 继承的就不不是访问的同一变量了?