不积跬步无以至千里,记录点点滴滴
其实说实话我现实在Android开发中没用过几次线程池,我觉得主要是因为我接触的开发的项目级别量不到,但是也得懂是不?
首先呢说一下线程池的作用 优点以及大概的使用方法
在实际的开发中有些耗时或者一些复杂的业务需要创建一个线程开操作比如实现Runnable,或者继承Thread 还可以用Future+callable
但是经常使用这些方法来创建的话会导致一些问题比如:
1.在任务众多的情况下,造成线程频繁地创建与销毁。
2.多个线程频繁地创建会占用大量的资源,容易造成界面的卡顿。
3.多个线程频繁地销毁,会频繁地调用GC机制,这会使性能降低,又非常耗时。
而线程池就是为了解决这些问题而存在的,来看一下他的优点:
对多个线程进行统一地管理,避免资源竞争中出现的问题。对线程进行复用,线程在执行完任务后不会立刻销毁,而会等待另外的任务,不会频繁地创建、销毁线程和调用GC。
关于线程池Java提供了完整的api,所以调用起来也特别方便,分别是以下几种:
ThreadPoolExecutor 创建基本线程池
基本线程池
FixedThreadPool (可重用固定线程数)
CachedThreadPool (按需创建)
SingleThreadPool(单个核线的fixed)
ScheduledThreadPool(定时延时执行)
未完待续....
网友评论