我是靠谱客的博主 天真树叶,最近开发中收集的这篇文章主要介绍mysql 线程池优化 51cto_线程池Executors,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部