猿问

线程类不能直接调用方法,必须使用构造方法吗?下面两个例子运行有什么不同

1.public class DieThreadDemo {
	public static void main(String[] args) {
		Example example=new Example();
		helloThread1 thread1=new helloThread1(example);
		thread1.start();
		helloThread2 thread2=new helloThread2(example);
		thread2.start();
	}

}

class helloThread1 extends Thread{
	private Example example=null;
	public helloThread1(Example example){
		this.example=example;
	}
	@Override
	public void run() {
		example.method1();
	}
}
2.public class hello {
	public static void main(String[] args) {
		helloThread1 thread1=new helloThread1();
		thread1.start();
		helloThread2 thread2=new helloThread2();
		thread2.start();
	}
}

class helloThread1 extends Thread{
	Example example=new Example();
	public void run(){
		example.method1();
	}
}


超人TT
浏览 1323回答 1
1回答

风一般的男人

java里面是new Thread().start(),就是都是先实例化类,在调用run()方法,然后再通过run()方法调用其他方法。不同之处在于,第一种可以向子线程传值,而第二种不能传值,因为第二种线程的构造方法只有空的构造方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答