[英]java - Thread.sleep
在下面的代码和输出中,t2直到t1完成才开始。 他们不应该并行工作吗? Thread.sleep()是否会影响整个过程?
public class Main {
public static void main(String[] args) {
T t1 = new T(), t2 = new T();
t1.run();
t2.run();
}
}
class Test {
private int x;
void foo() {
synchronized (this){
System.out.println("Entered");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Exit");
}
}
}
class T extends Thread {
static Test t = new Test();
public void run() {
System.out.println("Thread started");
t.foo();
}
}
输出:
线程开始
进入
出口
线程开始
进入
出口
如果要将它们作为单独的线程运行,则需要调用Thread.start()
方法。
而是直接调用run()
方法。 这两个调用将在与调用者相同的线程中执行。
Runnable
说Runnable
,通常您可以只继承Runnable
而不是Thread。 然后,您可以选择将Runnable传递给Thread(Runnable)构造函数-或传递给ExecutorService
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.