Eclipse plugin Eclipse插件在新jvm中运行代码的标准方法?

Eclipse plugin Eclipse插件在新jvm中运行代码的标准方法?,eclipse-plugin,Eclipse Plugin,我正在开发一个Eclipse插件(构建器),我想使用一个非线程安全的库。当然,我希望并行运行该库中的代码。Eclipse插件在新的子jvm(跨平台;我不想维护windows/mac/linux/…版本)中运行代码是否有一种标准方法?我非常高兴地说,该功能的内存需求将非常大(多个gig就可以了) 我建议使用专用启动配置。我们在GrailsIDE中广泛地实现了这一点。我建议您看看源代码。我们的基础设施可能超出您的需要,但它可以让您产生想法 您只需为外部进程创建一个启动配置并启动它。下面是了解我们工作

我正在开发一个Eclipse插件(构建器),我想使用一个非线程安全的库。当然,我希望并行运行该库中的代码。Eclipse插件在新的子jvm(跨平台;我不想维护windows/mac/linux/…版本)中运行代码是否有一种标准方法?我非常高兴地说,该功能的内存需求将非常大(多个gig就可以了)

我建议使用专用启动配置。我们在GrailsIDE中广泛地实现了这一点。我建议您看看源代码。我们的基础设施可能超出您的需要,但它可以让您产生想法

您只需为外部进程创建一个启动配置并启动它。下面是了解我们工作的好地方:


方法获取特定grails命令和特定项目的启动配置,然后为系统进程和侦听器定制启动配置。最后,同步启动命令。这对我们来说非常有效。

如果您有一个不是线程安全的库,那么您需要确保该库在使用时进行了正确的同步,以避免出现任何问题。一种可能适合您的方法是,确保在单个线程中使用该库。在您的案例中,另一种可能更乏味的方法是,所有使用库的方法都是同步的。在与你类似的情况下,我总是喜欢前者


您可以创建一个特殊线程,负责所有需要库的操作。根据您的需要,您可以让所有调用异步或同步,但您需要实现某种回调机制来获得结果。实现这一点的一个方便方法是使用接口。实现一个执行器,该执行器将确保所有任务按照推送到执行器的顺序在同一线程内运行。
Executor
的文档提供了一个很好的示例,让您可以从中开始。您可以向该示例中添加其他方法,使其具有同步执行,甚至具有同步返回结果的执行方法。为此,您还可以查看界面。

谢谢,我来看看。乍一看,这似乎正是我需要的。我想你误解了这个问题-@AndrewEisenberg的答案正是我想要的答案。我确实需要并行执行对库的调用;因为我不能使库线程安全,所以我需要在完全不同的JVM中运行它。(对库的调用需要数十秒,因此在我这边添加同步是没有用的)。没问题。。。我只是没有意识到并行调用同样重要,在这种情况下,还有其他方法可以确保线程安全。一个单线程串行执行器在其中一个上。但由于平行通话对你很重要,所以我同意你的选择。