import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
//创建一个大小无限制的线程池,通过不同的线程去累加共享的数据,
public class TestScheduledThreadPoolExecutor {
static int i=0;
public static void main(String[] args) {
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
//每隔一段时间就触发异常
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
//throw new RuntimeException();
i++;
System.out.println("测试线程1=="+i);
// if(i>20){
// System.out.println("关闭测试线程1=="+i);
// exec.shutdown();
// }else{
// System.out.println("测试线程1=="+i);
// }
//System.out.println(exec.getLargestPoolSize());
}
}, 1000, 1000, TimeUnit.MILLISECONDS);
//每隔一段时间打印系统时间,证明两者是互不影响的
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
//System.out.println(System.nanoTime());
i++;
System.out.println("测试线程2=="+i);
}
}, 2000, 3000, TimeUnit.MILLISECONDS);
//每隔一段时间打印系统时间,证明两者是互不影响的
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
//System.out.println(System.nanoTime());
i++;
System.out.println("测试线程3=="+i);
}
}, 3000, 2000, TimeUnit.MILLISECONDS);
}
}