java - 如何在多个核心上执行java程序?

标签 java multithreading jvm

我有一个 Java 程序,它基于 bash 脚本中的循环(根据要编译以构建 Linux 内核的文件数量)运行了数千次。

由于 jvm 多次启动,出现了性能问题...

然后我所做的是在 java 中实现一个包装器,它的作用与我的 bash 脚本相同,从文件中读取一行,然后调用我之前程序的 main...这样,我只有一个 jvm正在运行...

现在的问题是,我的盒子只使用了一个核心,这是另一个性能问题...我是否必须启动一些线程,或者我可以使用相同的方法,但可能以不同的方式调用“前”主线程? 如果我必须启动一些线程,我如何在多个核心中调度它们?

谢谢...

最佳答案

您的 java 程序需要成为多线程,以便充分利用多个核心。

例如,使用java.util.concurrent.Executors创建一个线程池,将您的数据项封装为Runnable,并将Runnable提交到线程池。

关于java - 如何在多个核心上执行java程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045688/

相关文章:

java - 如何在集群上使用 JVM 程序? (比如停产的 cJVM/JavaSplit)

java - 如何检查给定 JVM 标志的值?

Java将列表转换为集合的映射

java - 从不同计算机启动时,6.0.0.CR1 infinispan 服务器集群未形成

java - 找不到 Tomcat Mapper 类

java - Java 中的 CountDownLatch 需要额外的同步吗?

java - 如何安全地重构(例如重命名字段)JAX-RS Web 服务调用中返回的 DTO 类?

Java + Redis Pub/Sub - 帮助选择一个好的 Worker 实现

c# - 留在队列中的项目的替代方案(线程消费者生产者)

c - 如何为 jvm.dll 设置系统范围的环境变量