线程池的概念 与Executors 类的应用

创建固定大小的线程池 ExecutorService threadPool = Executors.newFixedThreadPool(3);

创建缓存线程池       ExecutorService threadPool = Executors.newCachedThreadPool(3);

创建单一线程池    ExecutorService threadPool = Executors.newSingleThreadExecutor(3);(线程死掉后重新生成新的线程)

线程池定时器   Executors.newScheduledThreadPool(3).schedule(Runnable command,long delay,时间格式); 具体看apijdk1.6

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=1;i<=10;i++){

final int task = i;

threadPool.execute(new Runnable(){

@Override

public void run() {

for(int j=1;j<=10;j++){

try {

Thread.sleep(20);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName() + " is looping of " + j

+ " for  task of " + task);

}

}

});

}

System.out.println("all of 10 tasks have committed! ");

//threadPool.shutdownNow();

Executors.newScheduledThreadPool(3).scheduleAtFixedRate(

new Runnable(){

@Override

public void run() {

System.out.println("bombing!");

}},

6,

2,

TimeUnit.SECONDS);

时间: 2024-08-05 11:13:42

线程池的概念 与Executors 类的应用的相关文章

java5线程池详解与Executors类创建不同线程池的用法

java中的线程池是非常重要的,它可以节省资源开销,从而提升程序的性能.向Tomcat等一些web服务器都必须用到线程池.java5中为我们提供了一些应用线程池的API,下面的代码将详解其用法. package hxl.insist; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorSer

Java线程池:ExecutorService,Executors

简单的Java线程池可以从Executors.newFixedThreadPool( int n)获得.此方法返回一个线程容量为n的线程池.然后ExecutorService的execute执行之. 现给出一个示例. package zhangphil.executorservice; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ZhangPhil

Android(Java)线程池:ExecutorService和Executors使用(一)

ExecutorService是线程池的一个服务,可以随时关闭线程池,是继承Executor的.Executors是个工厂类,专门创建各种线程池. public interface ExecutorService extends Executor { void shutdown(); List<Runnable> shutdownNow(); boolean isShutdown(); boolean isTerminated(); boolean awaitTermination(long

Java线程池的原理及几类线程池的介绍

刚刚研究了一下线程池,如果有不足之处,请大家不吝赐教,大家共同学习.共同交流. 在什么情况下使用线程池? 单个任务处理的时间比较短 将需处理的任务的数量大 使用线程池的好处: 减少在创建和销毁线程上所花的时间以及系统资源的开销 如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及"过度切换". 线程池工作原理: 为什么要用线程池? 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到

线程池实例:使用Executors和ThreadPoolExecutor

线程池负责管理工作线程,包含一个等待执行的任务队列.线程池的任务队列是一个Runnable集合,工作线程负责从任务队列中取出并执行Runnable对象. java.util.concurrent.executors 提供了 java.util.concurrent.executor 接口的一个Java实现,可以创建线程池.下面是一个简单示例: 首先创建一个Runable 类: WorkerThread.java package com.journaldev.threadpool; public

Android(Java)线程池:ExecutorService和Executors使用(二)

一.固定大小的线程池,newFixedThreadPool: package Executor.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ExecutorTest { public static void main(String[] args) { // TODO Auto-generated method stub doExecut

线程池(2)Executors.newFixedThreadPool

例子: ExecutorService es = Executors.newFixedThreadPool(5); try { for (int i = 0; i < 20; i++) { Runnable syncRunnable = new Runnable() { @Override public void run() { log.info(Thread.currentThread().getName()); try { Thread.sleep(2000); } catch (Inter

线程池(4)Executors.newScheduledThreadPool-只执行1次

例子1:延迟3秒后,只执行1次 ScheduledExecutorService es = Executors.newScheduledThreadPool(5); log.info("开始时间"); try { for (int i = 0; i < 20; i++) { Runnable syncRunnable = new Runnable() { @Override public void run() { log.info(Thread.currentThread().g

线程池(3)Executors.newCachedThreadPool

例子: ExecutorService es = Executors.newCachedThreadPool(); try { for (int i = 0; i < 20; i++) { Runnable syncRunnable = new Runnable() { @Override public void run() { log.info(Thread.currentThread().getName()); try { Thread.sleep(2000); } catch (Inter