概述
3个线程的线程池提交10个任务import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ThreadPoolTest {
public static void main(String[] args) {
ExecutorService threadPool =Executors.newFixedThreadPool(3);
//ExecutorService threadPool =Executors.newCachedThreadPool();//池子里面的线程数动态变化
//ExecutorService threadPool =Executors.newSingleThreadExecutor();//单个线程池,线程死了会找个替补,保证线程不会挂掉
for(int i=1;i<=10;i++){
final int k=i;
threadPool.execute(new Runnable() {
@Override
public void run() {
for (int j=1;j<=10;j++){
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" looping of "+j+" for task of "+k);
}
}
});
}
System.out.println("All of 1o tasks have committed");
threadPool.shutdown();//线程池必须关闭线程才能停止,任务干完了关闭
//threadPool.shutdownNow();//任务没干完也立即关闭
//定时器,调度线程池,10s后执行
Executors.newScheduledThreadPool(3).schedule(new Runnable() {
@Override
public void run() {
System.out.println("bombing!");
}
}, 10, TimeUnit.SECONDS);
//4s后开炸,然后每隔2s开炸
Executors.newScheduledThreadPool(3).scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("bombing!");
}
}, 4,2, TimeUnit.SECONDS);
//变相绝对定时,无绝对时间定时
System.err.println(new Date().getTime()-System.currentTimeMillis());
}
}
最后
以上就是天真树叶为你收集整理的mysql 线程池优化 51cto_线程池Executors的全部内容,希望文章能够帮你解决mysql 线程池优化 51cto_线程池Executors所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复