首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java并发-是指令级并行(ILP)使用的底层。

java并发-是指令级并行(ILP)使用的底层。
EN

Stack Overflow用户
提问于 2016-09-02 09:21:54
回答 1查看 311关注 0票数 0

Java或一些类似语言中的并发是通过线程或任务级并行来实现的。但是在引擎盖下,硬件或运行时也使用ILP来实现最佳性能。

进一步的阐述:在多核处理器(例如每个系统4个)和多个线程(例如每个内核2个)(即每个系统总共8个线程)中,java线程在多个处理器线程中的一个执行(在本例中为8个)。但是,如果系统确定所有或几个其他线程只能保持理想状态,那么硬件或运行时是否可以进行任何合法的重新排序,并在相同或其他内核上的其他线程中执行它们,并将结果返回(或在主内存中)。

我很担心java实现是否允许这样做,或者即使在JVM不知情的情况下,也要由硬件来独立处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 10:44:07

您要求的内容有点不清楚,但我不认为它与Java有多大关系。

我想你说的是(至少)两件不同的事情:

  1. "ILP“通常用于指发生在单个核内的一组技术(如流水线和分支预测),与线程或多核无关。这些技术是CPU的透明实现细节,通常不会以您(或运行时)可以直接交互的方式公开。
  2. 如果线程被阻塞(即使不是,为了确保公平性),则由内核调度程序交换内核。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39288851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档