Skip to content

Android平台下的线程池管理工具类

License

Notifications You must be signed in to change notification settings

rohsuton/ThreadPoolHelp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

19 Commits

Repository files navigation

ThreadPoolHelp

ThreadPoolHelp是一款Android平台下简单易用的线程池管理工具,包大小只有9K,能满足常用的多线程管理需求

下载 ThreadPoolHelp-2.0.jar

简单用法

  • 使用默认线程池
newThreadTaskObject(){@Overridepublicvoidrun(){//线程执行体  } }.start();
  • 指定线程池

指定线程池newPool,该线程任务将在线程池newPool中运行。

newThreadTaskObject("newPool"){@Overridepublicvoidrun(){//线程执行体  } }.start();

以上用法能满足基本需求,如需要更加详细的配置,参考进阶用法

进阶用法

  • 创建一个可缓存线程池

该线程池的特点是,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。

使用默认线程池

ThreadPoolHelp.Builder .cached() .builder() .execute(new Runnable(){@Override public void run(){//线程执行体 }); 

使用指定线程池,poolName为线程池名称

ThreadPoolHelp.Builder .cached() .name("poolName") .builder() .execute(new Runnable(){@Override public void run(){//线程执行体 }); 
  • 创建一个定长线程池

该线程池的特点是,可控制线程最大并发数,超出的线程会在队列中等待。

使用默认线程池,size为固定线程池大小

ExecutorService executorService = ThreadPoolHelp.Builder .fixed(size) .builder(); 
executorService.execute(new Runnable(){@Override public void run(){//线程执行体 }); 

使用指定线程池,poolName为线程池名称,size为固定线程大小

ExecutorService executorService = ThreadPoolHelp.Builder .fixed(size) .name("poolName") .builder(); 
executorService.execute(new Runnable(){@Override public void run(){//线程执行体 }); 
  • 创建一个单线程化的线程池

该线程池的特点是,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

使用 默认线程池

ThreadPoolHelp.Builder .single() .builder() .execute(new Runnable(){@Override public void run(){//线程执行体 }); 

使用指定线程池,poolName为线程池名称

ThreadPoolHelp.Builder .single() .name("poolName") .builder() .execute(new Runnable(){@Override public void run(){//线程执行体 }); 
  • 创建一个定长线程池定时任务

该线程池的特点是,支持定时及周期性任务执行。

ScheduledExecutorService executorService = ThreadPoolHelp.Builder .schedule(size) .scheduleBuilder(); 
executorService.schedule(new Runnable(){@Override public void run(){//线程执行体 }, 3000, TimeUnit.MILLISECONDS); 
  • 创建一个自定义的线程池

该线程池的特点是,如果以上都不能满足需求,开发者可以根据需求自己设置参数。

ExecutorService executorService = ThreadPoolHelp.Builder .custom(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue) .builder()); 
executorService.execute(new Runnable(){@Override public void run(){//线程执行体 }); 

About

Android平台下的线程池管理工具类

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages