使用ForkJoinPool執行多執行緒任務
阿新 • • 發佈:2018-12-12
Scala寫的,JAVA改一下就能用
val forkPool = new ForkJoinPool() val tasks = new LinkedList[Callable[Boolean]] tasks.add(new Callable[Boolean] { override def call(): Boolean = { val courtInfoResp = entQuerySrv.queryCourtInfo(companyName, isExactlySame = true, FIXED_PAGE_NO, FIXED_PAGE_SIZE) resp.courtInfo = courtInfoResp true } }) tasks.add(new Callable[Boolean] { override def call(): Boolean = { val courtAnnouResp = entQuerySrv.queryCourtAnnouInfo(companyName, FIXED_PAGE_NO, FIXED_PAGE_SIZE) resp.courtAnnounce = courtAnnouResp true } }) tasks.add(new Callable[Boolean] { override def call(): Boolean = { val distrustResp = entQuerySrv.queryEntDistrustInfo(companyName, null, isExactlySame = true, FIXED_PAGE_NO, FIXED_PAGE_SIZE) resp.distrustInfo = distrustResp true } }) tasks.add(new Callable[Boolean] { override def call(): Boolean = { val beizhixingResp = entQuerySrv.queryEntBeiZhiXingInfo(companyName, null, isExactlySame = true, FIXED_PAGE_NO, FIXED_PAGE_SIZE) resp.beiZhiXingRecord = beizhixingResp true } }) tasks.add(new Callable[Boolean] { override def call(): Boolean = { val courtDecisionResp = entQuerySrv.queryCourtDecisionInfo(companyName, isExactlySame = true, null, FIXED_PAGE_NO, FIXED_PAGE_SIZE) resp.courtDecisions = courtDecisionResp true } }) forkPool.invokeAll(tasks) forkPool.shutdown() forkPool.awaitTermination(20, TimeUnit.SECONDS)