线程池

池的本质就是一种缓存技术,牺牲空间换取时间。
Java5新增了一个Executors工厂类来产生线程池,以下几个静态工厂方法创建线程池:
1、newCachedThreadPool():具有缓存功能的线程池。
2、newFixedThreadPool(int nThreads):创建一个可复用的、具有固定线程数的线程池。
3、newSingleThreadExecutor():只有单线程的线程池,相当于newFixedThreadPool传入1.
4、newScheduledThreadExecutor(int corePoolSize):具有指定线程数的线程池
5、newSingleThreadScheduledExecutor():创建只有一个线程的线程池,它可以在指定延迟后执行线程任务。
6、ExecutorService newWorkStealingPool(int parallelism):
7、ExecutorService newWorkStealingPool()

使用线程池来执行任务的步骤:
1、调用Executor类的静态工厂方法创建一个ExecutorService对象,该对象代表一个线程池;
2、创建Runnable实现类或Callable实现类的实例,作为线程执行任务;
3、调用ExecutorService对象的submit()方法来提交Runnable实例或Callable实例;
4、当不想提交任何任务时,调用ExecutorService对象的shutdown()方法来关闭线程池。

ThreadLocal类
从另一个角度来解决多线程的并发访问,将需要的并发访问的资源复制多份,每个线程拥有一份资源。
通常建议:如果多个线程之间需要共享资源,以达到线程之间的通信功能,就使用同步机制;如果仅仅需要隔离多个线程之间的共享冲突,则可以使用ThreadLocal。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值