java 多线程之executor简单了解

Executor:接口,大批量并发执行框架,其衍生子接口 ExecutorServiceScheduledExecutorService  。执行一个传入Runnable的:
execute(Runnable command)

ExecutorService:是Executor接口衍生的子接口,主要用于并发线程池,其衍生ThreadPoolExecutor(线程池), ScheduledThreadPoolExecutor(定时线程池)

基本用法:ExecutorService 提供了一个工具方法:Executors。创建ExecutorService实例工具提供了以下几个方法:

            new FixedThreadPool(int thread):创建一个固定线程大小的线程池,当所有线程都被使用时,线程将会处于等待状态,或者有明确的shutdown。

            new CachedThreadPool():创建一个具有缓存功能的线程池。当缓存线程不够时会重新创建线程并放入线程池中,当超过60秒未使用则从缓存中清除。

            newScheduledThreadPool(int corePoolSize):创建一个具有定时功能的线程池或延期执行。

            newSingleThreadExcutor():创建单一线程线程池。线程数只为1,可用于多个线程操作同一文件。所有任务按顺序执行

ExecutorService有几个执行方式:

           ExecutorService.execute(Runnable):接收一个Runnable实例并异步执行:

部分代码1.8写法:

                

          ExecutorService.submit(Runnable):接收一个Runnable实例;该方法与execute区别在于会返回一个Futrue对象作为执行结果:Futrue futrue=ExecutorServcie.submit(Runnable)   ;通过futrue.get()拿到执行结果。


           ExecutorService.submit(Callable):接收一个Callable对象;返回Future。其中Callable拥有一个call()可以返回执行结果(run方法无返回值):

  

            ExecutorService.invokAny(Callable):返回任务中一个执行结果具有随机性:


           invokeAll(Callable):接收一个Callable实例,与invokeAny不同,这个是返回每一个任务的结果

在使用完executorService后应当关闭执行线程,否则线程会一直运行,shutdown()方法关闭线程(不会立即关闭),shutdownnow()会立即关闭线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值