我知道三种创建线程的方法,Java中的任务。在求职面试中,有人问我是否有可能以其他方式在Java中创建线程。有可能吗?如果是,请举一些例子。
答案 0 :(得分:11)
在Java中创建线程的唯一方法是创建一个Thread
对象并starting。
引用java language specification:
用户创建线程的唯一方法是创建此类的对象;每个线程都与这样的对象相关联。在相应的Thread对象上调用start()方法时,线程将启动。
Runnable
和Callable
是JDK用于提交要在线程中执行的代码的两个接口。例如,在其各种java.util.concurrent
类中。
答案 1 :(得分:1)
Runnable
是一个接受Thread的构造函数参数的接口。您可以扩展Thread,以便子类的构造函数接受任何其他类型的参数。类似地,java.util.concurrent中的线程池接受Callable
。您可以开发其他类型的线程池,它们可以接受任何其他类型的任务。
答案 2 :(得分:1)
匿名创建一个主题。例如,如下所示:
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();
}
}