gpt4 book ai didi

java 并发 - 指令级并行(ILP)是否在底层使用

转载 作者:行者123 更新时间:2023-12-02 03:23:39 24 4
gpt4 key购买 nike

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

最佳答案

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

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

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

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

关于java 并发 - 指令级并行(ILP)是否在底层使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39288851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com