Java Executor服务可调用返回哈希错误

Java Executor服务可调用返回哈希错误,java,executorservice,callable,Java,Executorservice,Callable,我在Java多线程执行器服务中遇到问题。我已经为多线程任务实现了Callable。据我所知,我不必为put()使用任何concurrentHashMap或SynchronizedMap,因为两个线程都不使用相同的映射。 我的问题是,如果我的线程使用嵌套方法来获得结果,这可能是一个问题。我的代码如下: public TreeMap2 method3 implements Callable(TreeMap1){ TreeMap2 = method2(TreeMap1); return

我在Java多线程执行器服务中遇到问题。我已经为多线程任务实现了Callable。据我所知,我不必为put()使用任何concurrentHashMap或SynchronizedMap,因为两个线程都不使用相同的映射。 我的问题是,如果我的线程使用嵌套方法来获得结果,这可能是一个问题。我的代码如下:

public TreeMap2 method3 implements Callable(TreeMap1){
    TreeMap2 = method2(TreeMap1);
    return TreeMap2
}

public TreeMap2 method2(TreeMap1){
    TreeMap = method1(TreeMap1)
    //Do some work
    return TreeMap2
}


public TreeMap method1(TreeMap1){
    // Do some work
    return TreeMap;
}
然后将整个任务分成4个线程,并由InvokeAll调用。但这会引发与哈希相关的错误,如下所示:

Exception on pipe 27. java.lang.ArrayIndexOutOfBoundsException: 563893
java.lang.ArrayIndexOutOfBoundsException: 563893
at gnu.trove.TObjectIntHashMap.rehash(TObjectIntHashMap.java:171)
at gnu.trove.THash.postInsertHook(THash.java:243)
at gnu.trove.TObjectIntHashMap.put(TObjectIntHashMap.java:148)
at edu.umass.cs.mallet.base.types.Alphabet.lookupIndex(Alphabet.java:107)
at edu.umass.cs.mallet.base.types.AugmentableFeatureVector.<init>(AugmentableFeatureVector.java:88)
at edu.umass.cs.mallet.base.types.FeatureVectorSequence.<init>(FeatureVectorSequence.java:39)
at edu.umass.cs.mallet.base.pipe.TokenSequence2FeatureVectorSequence.pipe(TokenSequence2FeatureVectorSequence.java:60)
at edu.umass.cs.mallet.base.pipe.SerialPipes.pipe(SerialPipes.java:141)
at edu.umass.cs.mallet.base.pipe.SerialPipes.pipe(SerialPipes.java:217)
at edu.umass.cs.mallet.base.types.Instance.<init>(Instance.java:105)
at edu.umass.cs.mallet.base.types.InstanceList.add(InstanceList.java:741)
at de.bonn.limes.gcam.abner.MyTagger.doTagging(MyTagger.java:445)
at de.bonn.limes.gcam.abner.MyTagger.getEntities(MyTagger.java:297)
at de.bonn.limes.core.AbnerAnalysis.NERanalysis(AbnerAnalysis.java:84)
at de.bonn.limes.core.AbstractTagger.tagAbstracts(AbstractTagger.java:62)
at de.bonn.limes.core.ListOperations$AbnerCallable.call(ListOperations.java:51)
at de.bonn.limes.core.ListOperations$AbnerCallable.call(ListOperations.java:38)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
管道27上的异常。java.lang.ArrayIndexOutOfBoundsException:563893 java.lang.ArrayIndexOutOfBoundsException:563893 位于gnu.trove.tobjectnthashmap.rehash(tobjectnthashmap.java:171) 在gnu.trove.THash.postinsertook(THash.java:243) 位于gnu.trove.tobjectnthashmap.put(tobjectnthashmap.java:148) 位于edu.umass.cs.mallet.base.types.Alphabet.lookupIndex(Alphabet.java:107) 位于edu.umass.cs.mallet.base.types.AugmentableFeatureVector.(AugmentableFeatureVector.java:88) 位于edu.umass.cs.mallet.base.types.FeatureVectorSequence.(FeatureVectorSequence.java:39) 位于edu.umass.cs.mallet.base.pipe.TokenSequence2FeatureVectorSequence.pipe(TokenSequence2FeatureVectorSequence.java:60) 位于edu.umass.cs.mallet.base.pipe.SerialPipes.pipe(SerialPipes.java:141) 位于edu.umass.cs.mallet.base.pipe.SerialPipes.pipe(SerialPipes.java:217) 位于edu.umass.cs.mallet.base.types.Instance.(Instance.java:105) 在edu.umass.cs.mallet.base.types.InstanceList.add(InstanceList.java:741)中 在de.bonn.limes.gcam.abner.MyTagger.dotaging(MyTagger.java:445) 位于de.bonn.limes.gcam.abner.MyTagger.getEntities(MyTagger.java:297) 位于de.bonn.limes.core.abernalysis.neralysis(abernalysis.java:84) 位于de.bonn.limes.core.AbstractTagger.tagAbstracts(AbstractTagger.java:62) 位于de.bonn.limes.core.ListOperations$AbnerCallable.call(ListOperations.java:51) 位于de.bonn.limes.core.ListOperations$AbnerCallable.call(ListOperations.java:38) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 运行(Thread.java:745) 我原来的帖子是。
谢谢您的帮助。

请输入真正的java代码。请查看此代码不可编译。您可以使用
编辑
按钮,而不是发布新问题。此代码不可编译,因为存在其他依赖项。当我在单线程中运行此代码时,它会在我的系统上编译。这段代码对文本挖掘任务执行多线程处理。因此,在这里提供一切是不可行的。