有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java关于在JGAP中使用多线程,有什么我应该知道的“陷阱”吗?

我正在做一个基因编程项目,试图生成代表图像的GPs。我的方法是将图像分割成不同的独立部分,并让单独的线程对其执行演化任务

由于事情将是异步的,自然您也希望对象是独立的。问题是,我注意到JGAP中的某些对象实际上是共享变量,因此它们将在线程之间共享,这将导致很多问题。例如,我注意到所有具有相同名称的Variables都是相同的,这意味着如果我想同时计算多个IGPProgram,我必须锁定变量,这可能会影响性能

我还注意到,如果您试图创建多个GPC配置,程序会抱怨您必须先重置它。因此,在我看来,所有的GPP配置都是共享的(也就是说,你不能让多个线程同时创建多个配置),这是一个问题,因为创建GPProblems可能需要很多时间,而我正在创建很多GPProblems,所以我希望通过将工作拆分为多个线程来减少所花费的时间

在使用JGAP和线程时,我是否需要了解一些“陷阱”?不幸的是,JGAP文档中没有太多涉及多线程,我希望能从那些可能有JGAP经验的人那里得到一些建议


共 (2) 个答案

  1. # 1 楼答案

    根据FAQ,JGAP“确实支持多线程计算”。然而,这并不意味着整个API/对象图是完全线程安全的。您是否有一个代码示例来演示您遇到的问题?我认为如果你的问题没有一点改进,你就不会得到一个规范的答案

    JGAP distributionzip中的examples/src/examples/simpleBooleanThreaded下有一个线程示例