use*_*025 9 java multithreading
我有一个类"TestRunnable",它通过实现覆盖run方法Runnable.运行重写的run方法,如下所示:
TestRunnable nr = new TestRunnable();
Thread t = new Thread(nr);
t.setName("Fred");
t.start();
Run Code Online (Sandbox Code Playgroud)
t.run();t.start();怎么办?rge*_*man 13
该run方法只是另一种方法.如果直接调用它,那么它将不会在另一个线程中执行,而是在当前线程中执行.
这是我的测试TestRunnable:
class TestRunnable implements Runnable
{
public void run()
{
System.out.println("TestRunnable in " + Thread.currentThread().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
仅start在调用时输出:
TestRunnable in Fred
Run Code Online (Sandbox Code Playgroud)
仅run在调用时输出:
TestRunnable in main
Run Code Online (Sandbox Code Playgroud)
如果start未调用,则Thread创建的将永远不会运行.主线程将完成Thread并将被垃圾收集.
如果两者都没有被调出则输出:(没有)