this当然是自己了,不传this的话就会运行Thread的run方法,这个方法默认什么也不做。
既然你都继承了Thread,就应该 new ThreadStateDemo().start();
既然你都继承了Thread,就应该 new ThreadStateDemo().start();
解决方案 »
- JRE环境下是否需要将JDK或JDK以外的包配置上?
- 如何修改一个jar包里面的类的路径?
- jsp页面如何装换转换word,急用
- 100分求一规范的:java项目开发文档 实例(用来学习)
- 创建一个ADT类型的(class)的数组对象的时候,是new出来的,接下来对它的对象进行操作的时候为什么回出现空指针异常?(有代码)
- 可否用纯java实现控制com口。成功解决这个问题的大侠,我将会另开几个贴至少送出500分。不够再加。
- 关于String 的"=="运算符,讨个说法
- 代码安全问题
- 急!!!运行一个包含小程序的网页IE总是出错。是不是IE的BUG??
- 我只能取到 award bios的 版权,取不到AMI BIOS的版权,怎么办?
- 学习中有些几个疑问,请帮忙!
- 请教包的用法。
t = new Thread(this);我也不大理解为什么要这样
就用 new Thread(this).start()
new一个Thread可以用实现Runnable接口的类做参数
Runnable接口有一个方法就是run()
Thread会用这个run方法覆盖自身空的run方法
而Thread implements Runnable
所以继承Thread的类也实现了Runnable接口
如果我的类是:
public class MyThread extends Thread{
....
Thread t=new Thread(this);//这个和Thread t=new MyThread();是等价的?
}
如果我的类只是实现接口:
public class MyThread2 implements Runnable{
...
Thread t=new Thread(this);//就只有使用这种方法来实例我的类?
}上面我理解的对不?
如果我的类是:
public class MyThread extends Thread{
....
Thread t=new Thread(this);//这个和Thread t=new MyThread();是等价的?
}
------------------------------
如果你的MyThread实现了run方法,则会使用MyThread的run方法
上面我理解的对不?
------------------
对
不能这样认为
Thread t=new Thread(this);//生成两个实例
Thread t=new MyThread(); //生成一个实例
就是Thread t=new MyThread();
或者Thread t=new Thread(new MyThread());
Guten Tag java.lang.Thread
All Implemented Interfaces:
Runnable Thread作为一个类,实现了runnable接口,一个Thread对象属于一个runnable对象。
Thread的构造函数有:
1)public Thread(Runnable target)
启动后执行target.run(),在这里也即是ThreadStateDemo对象的run()。故“Thread t = new Thread(this);”是正确的。2)public Thread()
比如"Thread t = new Thread();”启动后执行t自身附带的run(),也即Thraed类的run(),因为Thraed类的run()实现为:
run()
{
}//空函数
所以什么都不会执行。因而,写成“ThreadStateDemo t = new ThreadStateDemo();”,启动后执行ThreadStateDemo类的run(),跟“Thread t = new Thread(this);”是殊途同归,都是正确的。
new一个Thread可以用实现Runnable接口的类做参数
Runnable接口有一个方法就是run()
Thread会用这个run方法覆盖自身空的run方法
而Thread implements Runnable
所以继承Thread的类也实现了Runnable接口