是否有任何其他可能性可以在Java中创建线程,任务,这些线程,任务不扩展线程或实现可调用的<V>,可调用的?



我知道创建线程的三种方法:Java中的任务。在面试中,一个人问我是否有可能以其他方式在Java中创建线程。有可能吗?如果是,请举个例子。

在Java中创建线程的唯一方法是创建Thread对象并启动它。

引用Java语言规范:

用户创建线程的唯一方法是创建此类的对象。每个线程都与这样的对象关联。当在相应的线程对象上调用start()方法时,将启动线程。

RunnableCallable是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();
    }
}

最新更新