CompletableFuture必須加上線程池?。?/span>
一個task:并行查詢三張表,同時,每張表都需要查找很多key,我才用了CompletableFuture,并行三個任務,每個任務中,我又對查詢的key進行分片,再次提交了CompletableFuture,我以為外面并行3個任務,不需要提交到線程池中,所以僅僅在查分片key的多個任務中定義了線程池。
但是同時我對list進行了parallelStream,最終由于沒有在suppyAsync中添加線程池被mentor說了一頓,發現大神們都非常細心。。。
原來:
CompletableFuture在CPU核心數大于2時,會與forkJoin采用的默認線程池,而我異步任務里執行多個分片異步任務,會導致一直阻塞。
查表大約3ms,但是多個key分片后,可能會有一些問題。
記住,以后:CompletableFuture必須加上線程池?。?/p>
浙公網安備 33010602011771號