java - 了解线程调度模式

标签 java eclipse multithreading

我正在使用 Eclipse IDE。

我问了这个问题 Multithread output not expected

这个问题对某些人来说似乎很愚蠢,但我仍然得到了一些宝贵的意见。 简而言之,我明白线程是不可预测的。好吧,在所有答案之后,我开始浏览网页以找出“线程不可预测”的原因?

我在某处读到,线程调度取决于操作系统的进程调度,因为进程实际上是由线程组成的。

我的问题是:

1) 如果我的计算机任意地只运行一个进程,即。 eclipse 。那么多线程会给出预期的结果吗?

2)除了我编写的代码之外,Eclipse 作为一个进程是否默认运行更多线程。

请帮助我,我真的很想知道为什么我无法预测代码的输出?

最佳答案

是的,eclipse 正在运行其他线程。此外,现代操作系统总是运行其他系统进程。此外,操作系统内核本身也有隐藏的线程在其内部运行(至少 Linux 是这样)。此外,即使这些事情都不存在,硬件本身也可以通过硬件中断来中断事情,例如当用户按下键盘上的某个键时。

线程有一种确定性形式,称为协作多线程。没有现代操作系统使用它,因为它不是很好。

关于java - 了解线程调度模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19346177/

相关文章:

java - 设置新版本号并在 Maven 中一次性构建

java - 从 LinkedHashMap 构建有序的 JSON 字符串

c - C 中未定义的 ARM 处理器库问题

java - Eclipse block 着色

java - LinkedBlockingQueue 无法等待线程执行

android - 在 Activity 之间保持线程和 View 处于 Activity 状态

java - java同步方法是在对象上同步还是使用标志

java - 来自 ZonedDateTime 即时的日期不是 utc

java - UTF-8 到 CP864(阿拉伯语)转换

函数返回值的Java Split函数