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

时间:2013-09-26 19:28:44

标签: java multithreading static

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

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

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

1 个答案:

答案 0 :(得分:3)

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

但是,我建议只修复代码,这样会简单得多。创建所有静态字段,非静态字段,并具有一个ThreadLocal变量,用于保存该线程的实例副本。