个人知乎
基础四-多线程
ThreadLocal:线程本地变量,每个线程有一个副本
线程安全变量:
AtomicInteger=new AtomicInteger(0);
BlockingQueue
线程池:减少线程创建销毁开销
ExecutorService service=Excutors.newSingleThreadExecutor();
service.submit(new Runnable(){
})
ExecutorService service=Excutors.newFixedThreadPool(2);
service.shutdown();
service.isTerminated();
Future:
返回异步结果,阻塞等待返回值,timeout,获取线程异常
Future<Integer> future=service.submit(new
Callable<Integer>(){
@Override
public Integer call() throws Exception{
throw new Exception();
}
});
service.shutdown();
try{
System.out.println(future.get());
}catch(Exception e){
e.printStackTrace();
}