Java SwingWorker是否具有类的相同实例?
我有几个Swingworker在运行,他们都需要OpenNLP进行计算。 OpenNLP需要一些时间进行初始化,所以我想知道这样做的最佳方式是什么? 我想在每个SwingWorker中启动一个OpenNLP实例是不明智的。 我可以初始化一个实例并将其传递给每个SwingWorker,但问题是我可以/希望只在SwingWorker中初始化OpenNLP,而不是之前 所以我想启动一个循环中的所有worker,在启动之后,它们(或者只是其中一个?)应该初始化OpenNLP的实例。当它准备好时,每个工人都应该使用它 我该怎么做Java SwingWorker是否具有类的相同实例?,java,swing,swingworker,opennlp,Java,Swing,Swingworker,Opennlp,我有几个Swingworker在运行,他们都需要OpenNLP进行计算。 OpenNLP需要一些时间进行初始化,所以我想知道这样做的最佳方式是什么? 我想在每个SwingWorker中启动一个OpenNLP实例是不明智的。 我可以初始化一个实例并将其传递给每个SwingWorker,但问题是我可以/希望只在SwingWorker中初始化OpenNLP,而不是之前 所以我想启动一个循环中的所有worker,在启动之后,它们(或者只是其中一个?)应该初始化OpenNLP的实例。当它准备好时,每个工人
谢谢 让所有swing Worker使用一个工厂bean进行同步延迟初始化:
public class OpenNLPFactory {
public synchronized OpenNLP getOpenNLP() {
if(OpenNLP ready ) {
return it
} else {
build it and return it.
}
}
}
返回的OpenNLP对象本身当然必须是线程安全的…让所有swing Worker使用一个执行同步延迟初始化的工厂bean:
public class OpenNLPFactory {
public synchronized OpenNLP getOpenNLP() {
if(OpenNLP ready ) {
return it
} else {
build it and return it.
}
}
}
返回的OpenNLP对象本身必须是线程安全的,当然