소스 검색

为了避免线程过载,最好使用一半的线程,避免出现异常。

DESKTOP-6LTVLN7\Liumouren 2 달 전
부모
커밋
0eff6e1cc6
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 3
      src/main/java/com/skyversation/poiaddr/service/impl/YyskAddressStandardizationServiceImpl.java

+ 3 - 3
src/main/java/com/skyversation/poiaddr/service/impl/YyskAddressStandardizationServiceImpl.java

@@ -354,13 +354,13 @@ public class YyskAddressStandardizationServiceImpl {
 
     public List<YyskAddressStandardization> runExecutorService(List<YyskAddressStandardization> listData) {
         // 创建线程池
-        ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
+        ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() / 2);
         List<Future<?>> futures = new ArrayList<>();
         for (int i = 0; i < listData.size(); i++) {
             YyskAddressStandardization item = listData.get(i);
-//            int finalI = i;
+            int finalI = i;
             futures.add(executorService.submit(() -> {
-//                System.out.print("<-" + finalI + "->");
+                System.out.print("<-" + finalI + "->");
                 List<String> addrList = new ArrayList<>();
                 String[] addr = AddressMatcher.matchProvinceAndCity(item.getAddress());
                 if (addr != null && !addr[0].contains("上海")) {