【发布时间】:2015-01-26 12:05:13
【问题描述】:
class myRunnable implements Runnable {
public void run() {
// TODO Auto-generated method stub
System.out.println("run");
}
}
public class TestThread {
public static void main(String[] args) {
Runnable threadJob = new myRunnable();
Thread t = new Thread(threadJob);
t.start();
for (int i = 0; i < 100000; i++) {
System.out.println("main");
}
}
}
控制台中的结果:
主要 主要的 主要的 主要的 ... 主要的 主要的 主要的 主要的
我找不到任何“运行”字样,这意味着运行方法没有运行。有人可以为我解释一下吗。谢谢。
PS:当 i
【问题讨论】:
-
你看到了多少个“主要”词?如果您的控制台仅显示最后 100 行(例如),则“运行”一词可能已超出缓冲区范围
-
仅测试线程,减少循环数,以便您可以轻松检查输出。以
i < 10为例进行测试;然后您将看到预期的行为。 -
为什么不直接打印“run”?
-
是的,因为您的控制台日志是有限的。
-
这正是它应该如何工作,你刚刚发现了一个叫做“控制台缓冲区”的东西 - 记住它,一旦你继续你的探索任务,它可能是重要的一天。
标签: java multithreading java-threads