这段代码工作正常但如果我在第6行使用构造函数Thread(name)而不是Thread(this,name)它不起作用我只是想知道是什么产生了区别?
public class threadtest implements Runnable{
Thread t;
public threadtest(String name)
{
System.out.println("satheesh");
Thread t=new Thread(this,name);
t.start();
t=null;
//System.out.println(this+"\n"+t);
}
public void run(){
System.out.println("satheesh");
for(int i=0;i<=10;i++)
{
try{
System.out.println("satheesh");
Thread.sleep(1000);
System.out.print(Thread.currentThread());
}
catch(Exception e)
{
System.out.println(e);
}
}
}
public static void main(String args[])
{
threadtest ob=new threadtest("satheesh");
}
}
Run Code Online (Sandbox Code Playgroud)
创建线程有两种方法:
子类Thread,覆盖run,然后创建子类的实例
扩展Runnable并将其提供给一个"运行"它的线程
您的代码执行#2 - 您已实现Runnable,因此您必须将其提供给线程以"运行"它.
如果我
Thread(name)在第6行使用构造函数而不是Thread(this,name)它不工作我只是想知道是什么产生了影响?
不同之处在于:
Thread t= new Thread(this,name);
创建一个新线程,让您的Runnable(this)在启动时运行.
Thread t= new Thread(name);
创建一个新线程没有给任何Runnable运行.所以线程在启动时什么都不做.
| 归档时间: |
|
| 查看次数: |
2349 次 |
| 最近记录: |