当前位置: 首页 > 面试题库 >

使用多核处理器是否需要多线程算法?

诸葛绍元
2023-03-14
问题内容

我只是想知道我们是否真的需要算法是多线程的,如果它必须利用多核处理器,或者jvm是否要利用多核处理器,即使我们的算法是顺序的?


问题答案:

我不相信任何当前的生产JVM实现都可以执行自动多线程。他们可能会使用其他核心进行垃圾回收和其他内部管理,但是如果您的代码是顺序表达的,则很难自动并行化它并仍然保留精确的语义。

可能 是一些实验/研究的JVM其中设法并行的代码的JIT可以当场为尴尬的并行区域,但我还没有听说过这样的生产系统任何东西。即使JIT 确实
发现了这种情况,它也可能比最初为并行 设计 代码的效率低。(顺序编写代码,您很容易最终做出设计决定,从而无意间妨碍了自动并行性。)



 类似资料:
  • 问题内容: 我知道,现在大多数处理器都有两个或多个内核,因此多核编程非常流行。有在Java中利用此功能的功能吗?我知道Java有一个Thread类,但是我也知道这是在多核流行之前的很长时间了。如果我可以使用Java中的多个内核,我将使用什么类/技术? 问题答案: Java是否支持多核处理器/并行处理? 是。它还是其他编程语言的平台,在该平台上,实现增加了“真正的多线程”或“真正的线程”卖点。在较新

  • 问题内容: 我希望能够使用gnu octave编程多个线程,以便它将利用多个处理器。 我在Fedora 17 Linux上安装了GNU Octave,并执行了以下操作: 在我的计算机上安装了最新版本的octave 3.6.2。它的效果很好,但是当您将两个巨大的矩阵相乘时,它会使八度使用的一个CPU陷入瘫痪。如果矩阵乘法利用所有内核,那就太好了,因为在这种情况下,CPU显然是瓶颈。 倍频程能否充分利

  • 我正在尝试使用多个处理器类在处理器步骤中处理记录。这些类可以并行工作。目前我已经编写了一个多线程步骤,其中我 设置处理器类的输入和输出行 提交给遗嘱执行人服务 获取所有未来对象并收集最终输出

  • 本文向大家介绍请问单核机器上写多线程程序,是否需要考虑加锁,为什么?相关面试题,主要包含被问及请问单核机器上写多线程程序,是否需要考虑加锁,为什么?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 在单核机器上写多线程程序,仍然需要线程锁。因为线程锁通常用来实现线程的同步和通信。在单核机器上的多线程程序,仍然存在线程同步的问题。因为在抢占式操作系统中,通常为每个线程分配一个时间片,当某个线程

  • 问题内容: 我一直在阅读有关Python的多处理模块的信息。我仍然认为我对它可以做什么没有很好的了解。 假设我有一个四核处理器,并且我有一个包含1000000个整数的列表,我想要所有整数的总和。我可以简单地做: 但这仅将其发送到一个内核。 是否有可能使用多处理模块将数组划分为多个,并让每个核获得其部分的总和并返回值,以便可以计算总和? 就像是: 任何帮助,将不胜感激。 问题答案: 是的,可以对多个

  • 我有一个图像路径列表,我想在进程或线程之间划分,以便每个进程处理列表的某些部分。处理包括从磁盘加载图像,进行一些计算并返回结果。我正在使用Python 2.7 下面是我如何创建辅助进程 我所面临的问题是,当我在initializer函数中记录初始化时间时,我知道worker不是并行初始化的,而是每个worker都以5秒的间隔初始化,下面是供参考的日志 我尝试过使用将同时启动辅助线程 我知道Wind