java - 使用静态成员变量并行化类

标签 java multithreading static

我目前正在使用一个执行一些繁重计算工作的应用程序。几年前它已经从 C 移植到 Java,并且已经显示了一些。其中,它使用公共(public)静态变量在类之间共享数据。

这项工作非常适合并行化,因为可以处理多个文件,并且每个文件都可以完全独立于其他文件来完成。但由于静态变量的原因,仅仅启动多个线程是行不通的。我想防止重写,因为这些类非常快、成熟且没有错误。

是否有一种简单的方法可以让我从 java 程序中启动多个线程/进程,其中每个线程都有自己的静态变量副本,或者我是否必须通过执行命令多次调用 JVM?

最佳答案

是的,您可以使用多个类加载器,或启动多个进程。

不过,我建议只修复代码,这样会简单得多。使所有静态字段成为非静态的,并有一个 ThreadLocal 变量来保存该线程的实例副本。

关于java - 使用静态成员变量并行化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037000/

相关文章:

java - EasyMock:replay后多加一个期望

java - 我尝试过 stackoverflow 上的所有答案,但失败了

php - 多线程 Curl 无法处理大量并发 URL?

c# - 如何告诉调试器不要停止一些关键线程?

java - 静态变量是否应该在只实例化一次的类中使用

java - 如何在 Java 中处理关闭请求

c++ - Boost:是否有类似 interprocess::message_queue 的线程通信机制?

java 静态方法和接口(interface)/继承

c++ - 静态类或实例指针

java - Hibernate映射内部类,错误 "Could not determine type for: timeStamps"