我知道创建线程的三种方法:Java中的任务。在面试中,一个人问我是否有可能以其他方式在Java中创建线程。有可能吗?如果是,请举个例子。
在Java中创建线程的唯一方法是创建Thread
对象并启动它。
引用Java语言规范:
用户创建线程的唯一方法是创建此类的对象。每个线程都与这样的对象关联。当在相应的线程对象上调用start()方法时,将启动线程。
Runnable
和 Callable
是JDK用于在线程中执行的代码的两个接口。例如,在其各种java.util.concurrent
类中。
Runnable
(按照惯例)是对Thread的构造函数的参数所接受的接口。您可以扩展线程,以便儿童类的构造函数接受任何其他类型的参数。Similary,Callable
被Java.util.concurrent中的线程池接受。您可以开发其他类型的线程池,这些线程池接受任何其他类型的任务。
匿名创建线程。例如,如下所示:
import java.util.Date;
class TestDemo
{
public static void main(String[] args)
{
Thread t = new Thread()
{
public void run()
{
while(true)
{
System.out.println(new Date());
try
{
Thread.sleep(1000);
}catch(Exception e){}
}
}
};
t.start();
}
}