假设我有以下代码片段:
Thread x = new Thread() {
public void run() {
while (true) {
// do something
}
}
};
Thread y = new Thread() {
public void run() {
while (true) {
// do something
}
}
};
x.start();
y.start();
现在我的问题是,由于这两个线程都运行无限循环,它们会同时开始运行吗?
最佳答案
好吧,这取决于 JVM 线程调度程序、您正在运行代码的机器类型(单核或多核)和操作系统,当您第一次在新线程上调用 start() 方法时,它只会从新状态变为可运行状态。
作为 JVM 的一部分的线程调度器决定在任何给定时刻哪个线程应该运行,并将线程从运行状态中取出。任何处于可运行状态的线程都可以由调度器选择。
关于java - 同时启动两个无限循环的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36250580/