0

Java 或一些类似语言中的并发是通过线程或任务级并行实现的。但在后台,硬件或运行时是否也使用 ILP 来实现最佳性能。
进一步详细说明:在具有多个线程(例如每个核心 2 个)(即每个系统总共 8 个线程)的多核处理器(例如每个系统 4 个)中,java 线程在几个(在这种情况下为 8 个)处理器之一中执行线程。但是,如果系统确定所有或几个其他线程除了保持理想之外什么都不做,硬件或运行时是否可以进行任何合法的重新排序并在相同或其他内核上的其他线程中执行它们并将结果取回(或在 main记忆)
我很担心 java 实现是否允许这样做,或者甚至在没有 JVM 甚至不知道任何东西的情况下,它也取决于硬件来独立处理。

4

1 回答 1

2

有点不清楚你在问什么,但我认为这与 Java 没有太大关系。

我认为你在谈论(至少)两件不同的事情:

  1. “ILP”一般用来指代发生在单核内的一组技术(如流水线和分支预测),与线程或多核关系不大。这些技术是 CPU 的透明实现细节,通常不会以您(或运行时)可以直接交互的方式公开。

  2. 如果线程被阻塞,内核调度程序会在内核上和内核上交换线程(即使它们不是,以确保公平)。

于 2016-09-02T10:44:07.477 回答