Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java start()不是在启动线程_Java_Multithreading - Fatal编程技术网

Java start()不是在启动线程

Java start()不是在启动线程,java,multithreading,Java,Multithreading,我已经编写了下面的示例代码来测试线程的行为。但是main没有启动线程test1执行,请告诉我这段代码有什么问题 class test1 implements Runnable { Thread t ; test1(String Name) { t = new Thread(Name); t.start(); } @Override public void run() { // TODO Aut

我已经编写了下面的示例代码来测试线程的行为。但是main没有启动线程test1执行,请告诉我这段代码有什么问题

class test1 implements Runnable
{

    Thread t ; 

    test1(String Name)
    {
        t = new Thread(Name);
        t.start();
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("Entered test1 run");
    }

}


public class SampleThread{

    public static void main(String[] args)  {
        Thread r = Thread.currentThread();
        System.out.println(r.getName()+" "+r.getPriority());
        r.setName("MainThread");
        r.setPriority(8);
        test1 t1 = new test1("test1");
        System.out.println("calling threads");
        try
        {
            t1.t.join();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

更改
t=新线程(名称)
t=新线程(这个,名称)(在test1中)将使代码正常工作

但是你的代码仍然让人困惑。您可以通过对线程进行子分类或实现Runnable并将Runnable传递给线程来创建java线程,而您似乎试图同时(错误地)完成这两项工作


我建议您查找有关线程的指南,例如

您从不将Runnable放入线程,因此其run方法永远不会运行。这是基本线程,建议您在谷歌上搜索并学习Java线程入门教程;已工作:)对象构造函数决不能允许另一个线程看到其
指针。这样做允许另一个线程看到处于不一致状态的对象。