【发布时间】:2016-09-19 12:49:32
【问题描述】:
我有一个关于操作系统级别的多线程的问题。
我有一个不使用多线程的java代码,
public static void main(String[] args)
{
int sum1=0, sum2=0;
for(int i=0; i < 10000; i++)
sum1 += i;
for(int j=0; j < 20000; j++)
sum2 += j;
System.out.print(sum1);
System.out.print(sum2);
}
正如您在上面的代码中看到的,两个 for 循环可以同时执行,而不会在输出中产生任何错误。 因此,操作系统可以同时使用 2 个线程运行我的代码以加快速度。 是否有任何操作系统使用线程来加速我的代码?
【问题讨论】:
-
您是在问 OS 是否能够分析您的 Java 代码(或字节码)并自动推断并行化机会?
-
two for loops can execute concurrently at the same time假。它们是线性执行的。第一个循环(i变量)然后是第二个(j变量)。 -
这些代码从不同时运行,处理速度太快你以为是同时运行的,java中程序是逐行运行的,
-
@UDKOX - OP 说它们可以同时执行而不影响可观察的行为。
-
有一些(非标准)编程语言具有“隐式并发”。 Java 不是其中之一。
标签: java multithreading operating-system