我正在使用 Eclipse IDE。
我问了这个问题 Multithread output not expected
这个问题对某些人来说似乎很愚蠢,但我仍然得到了一些宝贵的意见。 简而言之,我明白线程是不可预测的。好吧,在所有答案之后,我开始浏览网页以找出“线程不可预测”的原因?
我在某处读到,线程调度取决于操作系统的进程调度,因为进程实际上是由线程组成的。
我的问题是:
1) 如果我的计算机任意地只运行一个进程,即。 eclipse 。那么多线程会给出预期的结果吗?
2)除了我编写的代码之外,Eclipse 作为一个进程是否默认运行更多线程。
请帮助我,我真的很想知道为什么我无法预测代码的输出?
最佳答案
是的,eclipse 正在运行其他线程。此外,现代操作系统总是运行其他系统进程。此外,操作系统内核本身也有隐藏的线程在其内部运行(至少 Linux 是这样)。此外,即使这些事情都不存在,硬件本身也可以通过硬件中断来中断事情,例如当用户按下键盘上的某个键时。
线程有一种确定性形式,称为协作多线程。没有现代操作系统使用它,因为它不是很好。
关于java - 了解线程调度模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19346177/