java 之 线程池学习

来源:互联网 发布:怎样在淘宝上卖二手货 编辑:程序博客网 时间:2024/04/30 14:09
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class ThreadPoolTest {/** * @param args */public static void main(String[] args) {//ExecutorService threadPool = Executors.newFixedThreadPool(3);//ExecutorService threadPool = Executors.newCachedThreadPool();//自动分配线程,线程数是动态的ExecutorService threadPool = Executors.newSingleThreadExecutor();//保证有一个线程,死了就马上恢复一个,找一个替补/*for (int i = 0; i < 10; i++) {final int task = i;threadPool.execute(new Runnable() {@Overridepublic void run() {for (int j = 0; j < 10; j++) {try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+ " is looping of " + j + " for task of "+ task);}}});}*///threadPool.shutdownNow();//立即杀死,不顾其他的任务(0,1,2)//threadPool.shutdown();//10个任务都执行了//定时器/*Executors.newScheduledThreadPool(3).schedule(new Runnable() {@Overridepublic void run() {System.out.println("bomb!!!!!!!!xxxxxxxxxxxxxxxxxxxxxxxxxxx");}}, 10, TimeUnit.SECONDS);*///每隔一定的频率时间循环执行Executors.newScheduledThreadPool(3).scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {System.out.println("bomb!!!!!!!!xxxxxxxxxxxxxxxxxxxxxxxxxxx");}}, 10, //initialDelay3,//periodTimeUnit.SECONDS);}/* * 更精细的设置可以使用开源框架 Quartz 进行作业调度 */}

原创粉丝点击