gpt4 book ai didi

java - 在循环中启动和关闭线程好吗?

转载 作者:行者123 更新时间:2023-11-30 10:15:30 26 4
gpt4 key购买 nike

<分区>

在这段代码中,我使用两个线程来处理两个任务。任务完成后,ExecutorService 关闭。然后它继续处理下一对“sku”和“inputText”。再次创建两个线程来处理这两个任务,然后关闭。它以这种方式继续,直到处理完所有输入。

这是在本地方法中使用多线程的正常方式吗?恐怕在一个方法中频繁创建和关闭 ExecutorService 局部变量可能不太好。

 // defined as an instance variable 
ExecutorService executorService = Executors.newFixedThreadPool(2);


public ExtractedInfo execute(String sku, String inputText){

ExtractedInfo info = new ExtractedInfo();

Callable<List<Subgraph>> retrieveTask = () -> {
return this.retrieveAllAttributesFromGraph(sku);
};
Callable<String> parseTask = () -> {
return this.executeParser(sku, inputText);
};

Future<List<Subgraph>> retrieveService = executorService.submit(retrieveTask);
Future<String> parseService = executorService.submit(parseTask);

String inputLine = null;
List<Subgraph> allAttributes = null;

try {
inputLine = parseService.get();
allAttributes = retrieveService.get();
}catch(ExecutionException ee){
ee.printStackTrace();
}catch (InterruptedException ie){
ie.printStackTrace();
}
**executorService.shutdown();**

info.setInputLine(inputLine);
info.setAttributes(allAttributes);

return info;
}

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com