资料内容:
第⼀章 java.util.concurrent简介
java.util.concurrent包提供了很多有⽤的类,⽅便我们进⾏并发程序的开发。本⽂将会做⼀个总体的简单介绍。
主要的组件
java.util.concurrent包含了很多内容, 本⽂将会挑选其中常⽤的⼀些类来进⾏⼤概的说明:
Executor
ExecutorService
ScheduledExecutorService
Future
CountDownLatch
CyclicBarrier
Semaphore
ThreadFactory
Executor
Executor是⼀个接⼝,它定义了⼀个execute⽅法,这个⽅法接收⼀个Runnable,并在其中调⽤Runnable的run⽅
法。
我们看⼀个Executor的实现:
public class Invoker implements Executor {
@Override
public void execute(Runnable r) {
r.run();
}
}
现在我们可以直接调⽤该类中的⽅法:
public void execute() {
Executor executor = new Invoker();
executor.execute( () -> {
log.info("{}", Thread.currentThread().toString());
});
}
注意,Executor并不⼀定要求执⾏的任务是异步的。
ExecutorService
如果我们真正的需要使⽤多线程的话,那么就需要⽤到ExecutorService了。
ExecutorService管理了⼀个内存的队列,并定时提交可⽤的线程。
我们⾸先定义⼀个Runnable类:
public class Task implements Runnable {
@Override
public void run() {
// task details
}
}