[英]understanding java code for thread
我刚刚查看了一些java代码,我遇到了以下程序
public class LengthOfString extends Thread {
static String s;
public void run(){
System.out.println("You Have Enter String: " + s +" Length Of It is :" + s.length());
}
public static void main(String[] args) throws InterruptedException {
s = "This IS String";
LengthOfString h = new LengthOfString(); //creating the object of class
Thread t = new Thread(h); //why we have passed this object here???
t.start();
}
}
我知道它用于打印字符串长度,但我在理解注释行时遇到问题。 请帮助我理解为什么使用这个实现。
实际上在java中,有两种方法可以创建一个Thread 。
提供Runnable对象。 Runnable接口定义了一个run方法,用于包含线程中执行的代码。 Runnable对象被传递给Thread构造函数。
子类线程。 Thread类本身实现了Runnable,尽管它的run方法什么都不做。 应用程序可以子类化Thread,提供自己的run实现。
你选择了第二个,你可以简单地写
new LengthOfString().start();
代替
LengthOfString h=new LengthOfString(); //creating the object of class
Thread t=new Thread(h); //why we have passed this object here???
t.start();
编辑:
Thread类有一个构造函数public Thread(Runnable target)
,它将Runnable
类型作为参数,当你将它传递给线程类时,它会在你启动该线程时调用run()
方法的实现。
在这种情况下,您不需要Thread t = new Thread(h)行,因为LengthOfString扩展了Thread。 但很多时候,您实现了Runnable接口。 在这种情况下,您需要在构造函数中创建一个带有Runnable参数的Thread对象,因为Runnable Objects没有启动方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.