本文采用的idea阿里规范手册插件为 Alibaba Java Coding Guidelines
1、采用匿名内部类创建线程
Thread t = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("主线程--->"+i);
}
}
});
阿里规范手册插件会报警告,不要显式创建线程,请使用线程池。
2、采用Executors.newFixedThreadPool(10)创建多线程
ExecutorService service = Executors.newFixedThreadPool(10);
service.execute(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("分支线程--->"+i);
}
}
});
阿里规范手册会包强制警告,手动创建线程池,效果会更好哦。
3、自定义线程池
/**
* corePoolSize线程池的核心线程数
* maximumPoolSize能容纳的最大线程数
* keepAliveTime空闲线程存活时间
* unit 存活的时间单位
* workQueue 存放提交但未执行任务的队列
* threadFactory 创建线程的工厂类
* handler 等待队列满后的拒绝策略
*/
ExecutorService threadPool = new ThreadPoolExecutor(2,5,
1L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(3),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
threadPool.execute(()->{
for (int i = 0; i < 100; i++) {
System.out.println("分支线程--->"+i);
}
});