package com.abc.test
import org.junit.Test
import java.util.concurrent.*
/**
*/
class CompletionServiceTest {
/**
* 提交了3个任务至CompletionService.
* 然后使用take()来取值.
* 注意take()会阻塞.
*/
@Test
fun tesCompletionService() {
val executor = Executors.newFixedThreadPool(10)
val completionService: CompletionService<Int> = ExecutorCompletionService(executor);
completionService.submit {
Thread.sleep(1000)
100
}
completionService.submit {
Thread.sleep(2000)
200
}
completionService.submit {
Thread.sleep(5000)
1000
}
1.rangeTo(3).forEach {
val result = completionService.take()
println(result.get())
}
executor.shutdown()
executor.awaitTermination(100, TimeUnit.DAYS)
}
}
java多线程之CompletionService代码示例
最新推荐文章于 2022-08-11 10:29:58 发布