我在下面写了示例代码来测试线程的行为。但是主要是没有启动线程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();
}
}
}
答案 0 :(得分:0)
将t = new Thread(Name);
更改为t = new Thread(this, Name);
(在test1中)会使您的代码正常工作。
但你的代码仍然令人困惑。您可以通过对Thread进行子类化或实现Runnable并将runnable传递给线程来创建java线程,并且您似乎尝试同时(错误地)同时执行这两个操作。
我建议您查看有关https://www.tutorialspoint.com/java/java_multithreading.htm
等主题的指南