今天来了解一下Java提供的一个创建单线程池的方法–newSingleThreadExecutor,通过这个方法创建的线程池允许线程在死亡或者发生异常后,重新启动一个新的线程来代替原来的线程并继续执行下去。
本文将从以下3个方面来介绍。
一、 简单使用用例
二、 查阅源码
三、 使用场景分析
一、 简单使用用例
Java代码:
Executor mSingleThreadPool = (Executor) Executors.newSingleThreadExecutor();
mSingleThreadPool.execute(new Runnable() {
@Override
public void run() {
Random random = new Random(100L);
int randomNum;
int temp = 0;
while (temp < 10) {
randomNum = random.nextInt(3);
Log.d("SingleThreadTest", "temp : " + temp + ", randomNum : " + randomNum);
try{
int result = temp++ / randomNum;
} catch (ArithmeticException e) {
e.printStackTrace();
}
}
}
});
log日志:
SingleThreadTest: temp : 0