线程池

  • Excutor是顶级线程池接口
  • ExecutorService是真正的线程池接口。
  • Executors类提供了一些静态工厂用于生成一些常用的线程池,当将一个任务添加到线程池时,线程池会为每个任务创建一个线程,该线程会在某个时刻执行。
public class Executors extends Object

     public static ExecutorService newCachedThreadPool()
     空闲线程会被保留60秒。对于每个任务,如果有空闲线程可用,立即让它执行任务;如果没有空闲的线程,则创建一个新的线     程。

     public static ExecutorService newFixedThreadPool(int nThreads)
     构建一个具有固定大小的线程池。如果提交的任务大于空闲的线程数,则把任务放置到队列中。

     public static ExecutorService newSingleThreadExecutor()
     线程数目为1的线程池,由一个线程执行提交的任务,一个接一个。




     public interface ExecutorService extends Executor

          <T>  Future <T>  submit ( Callable <T> task)
     提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。该 Future 的 get 方法在成功完成时将会返回该          任务的结果。

     <T>  Future <T>  submit ( Runnable  task,
                     T result)
提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。该 Future 的 get 方法在成功完成时将会返回给定的结果。

Future <?>  submit ( Runnable  task)
提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。该 Future 的 get 方法在 成功 完成时将会返回 null。



public interface Future<V>

Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由 cancel 方法来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。如果为了可取消性而使用 Future 但又不提供可用的结果,则可以声明 Future<?> 形式类型、并返回 null 作为底层任务的结果

  • 使用连接池应该做的事:
    • 调用Executors类中的静态方法newCachedThreadPool或newFixedThreadPool。
    • 调用submit()提交Runnable/Callable对象。
    • 当不想提交任务时,调用shutDowm。
class ThreadTest implements Runnable {
    public synchronized void run() {
         for (int i = 0; i < 5; i++) {
             System.out.print(i+" ");
         }
         System.out.println();
    }
}

public class ThreadPoolTest {

    public static void main(String[] args) {
         // TODO Auto-generated method stub
         ExecutorService executorService=Executors.newCachedThreadPool();
         ThreadTest thread=new ThreadTest();
         for(int i=0;i<10;i++){
             executorService.execute(thread);
         }
         executorService.shutdown();
    }
}

























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值