public class ThreadPool {
public static void main(String[] args) {
/*
//线程池
int corePoolSize = 2;
int maximumPoolSize = 5;
long keepAliveTime = 0;
TimeUnit unit = TimeUnit.SECONDS;
BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<Runnable>(8);
// ThreadPoolExecutor pool = new ThreadPoolExecutor(corePoolSize,
// maximumPoolSize,
// keepAliveTime,
// unit,
// workQueue);
// for(int i=0;i<25;i++)
// pool.submit(new PrintThread());
// pool.shutdown();
//拒绝策略:中止
keepAliveTime = 30;
ThreadPoolExecutor pool2 = null;
try {
pool2= new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
Executors.defaultThreadFactory(), new AbortPolicy());
for(int i=0;i<25;i++)
pool2.submit(new PrintThread());
}finally {
pool2.shutdown();
}
*/
//单个线程:一个一个地执行
// ExecutorService e = Executors.newSingleThreadExecutor();
// Executors.newSingleThreadExecutor(threadFactory);
// for(int i=0;i<10;i++) {
// e.execute(new PrintThread());
// }
// e.shutdown();
//固定线程池:3个工作线程
// ExecutorService e = Executors.newFixedThreadPool(3);
// for(int i=0;i<10;i++)
// e.execute(new PrintThread());
// e.shutdown();
//需要多少线程就创建多少
// ExecutorService e = Executors.newCachedThreadPool();
// for(int i=0;i<1000;i++)
// e.execute(new PrintThread());
// e.shutdown();
//定时任务:单线程
// ScheduledExecutorService e = Executors.newSingleThreadScheduledExecutor();
// e.schedule(new PrintThread(), 10, TimeUnit.SECONDS); //延迟10秒执行一次
// e.schedule(new PrintThread(), 10, TimeUnit.SECONDS);
// e.scheduleWithFixedDelay(new PrintThread(), 2, 12, TimeUnit.SECONDS); //每隔12秒执行一次
//定时任务:三个线程并发执行
ScheduledExecutorService e = Executors.newScheduledThreadPool(3);
for(int i=0;i<4;i++)
e.scheduleWithFixedDelay(new PrintThread(), 2, 5, TimeUnit.SECONDS); //每隔5秒执行一次
e.scheduleAtFixedRate(new PrintThread(), 2, 6, TimeUnit.SECONDS); //每隔6执行一次
}
static class PrintThread implements Runnable{
public void run() {
System.out.println("hello..");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
相关推荐
本案例详细介绍了JDK自带线程池,与spring的线程池相比,其更好,希望对大家有帮助
在最近做的一个项目中,需要大量的使用到多线程和线程池,下面就java自带的线程池和大家一起分享
JDK1.5线程池源码及详细注释 深入研究java线程原理
JDK1.5的线程池讲解,示例代码,很精辟~
利用jdk自带算法实现的AES加解密工具类及Base64编解码工具类、 文件操作工具类、aes扩展无限制权限策略文件等。 在jdk1.7环境亲测通过。
资源很不错
介绍一个通用多线程服务模块。是利用jdk线程池,多线程并行处理多任务,以提高执行效率。
JDK自带xml解析器dom+sax JDK自带xml解析器dom+sax JDK自带xml解析器dom+sax
JDK自带调试工具doc JDK自带调试工具doc JDK自带调试工具doc
使用jdk自带的jar工具打jar包 采用命令行的方式 方便 快捷
JDK自带的jarsigner签名工具帮助文档,指导大家用自带的JDK通过控制台签名apk;主要指令如下:jarsigner -verbose -keystore [您的签名存放路径]-signedjar [签名后的文件名] [未签名的文件名] [您的证书名称]
JDK1.5中的线程池(ThreadPoolExecutor)使用简介
详细介绍了jdk自带的工具的使用方法等 JDK自带工具分析 1 1、工具分类概括: 2 1.1、基本工具 2 1.2、安全工具 3 1.3、Java国际化工具 3 1.4、远程方法调用工具 3 1.5、Java IDL and RMI-IIOP 工具 3 1.6、Java 部署...
NULL 博文链接:https://samjavaeye.iteye.com/blog/938657
使用jdk1.5 实现的线程池. 可以定制人物和其它特性. 下载后可以自己进行相关功能完善. 欢迎加QQ:934547801一起讨论
JDK7多线程部分类(接口)关系图,根据官网得出
Java Diary - JDK自带的java数据库,并且是完全的关系型书库据----Derby
JDK自带VM分析工具jps,jstat,jmap,jconsole
主要介绍了JDK线程池和Spring线程池的使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
如何更换Eclipse项目中的JDK自带jre图解。有很多java初学者导别人的项目时,常常会遇到项目报红,这是因为jdk位置发生了改变。除非你的jdk位置跟创建这个项目的人的位置一致。这个文档就是解决更换jdk,换成自己的jdk...