Android单例线程池

package com.jredu.schooltong.manager;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ExecutorManager {
// 1.私有构造函数,提供静态变量用以存储,提供静态的方法
private ExecutorManager() {
init();

}

// 静态变量
private static ExecutorManager instance;

// 静态方法
public static ExecutorManager getInstance() {

if (instance == null) {
//加锁
synchronized (ExecutorManager.class) {
if (instance == null) {
instance = new ExecutorManager();
}
}
}
return instance;
}

// 运用单例模式,保证只能够被实例化一次
// 这个类就能应用到其他APP中了
private ExecutorService executorService;

// 初始化线程池
private void init() {
int threadCount = Runtime.getRuntime().availableProcessors() * 2 + 1;
executorService = Executors
.newFixedThreadPool(Math.min(threadCount, 8));

}
public ExecutorService getExecutor(){
return this.executorService;
}
public void execute(Runnable runnable){
this.executorService.execute(runnable);
}

}

时间: 2024-11-05 17:21:07

Android单例线程池的相关文章

Android开发之线程池使用总结

线程池算是Android开发中非常常用的一个东西了,只要涉及到线程的地方,大多数情况下都会涉及到线程池.Android开发中线程池的使用和Java中线程池的使用基本一致.那么今天我想来总结一下Android开发中线程池的使用. OK,假如说我想做一个新闻应用,ListView上有一个item,每个item上都有一张图片需要从网络上加载,如果不使用线程池,你可能通过下面的方式来开启一个新线程: new Thread(new Runnable() { @Override public void ru

Android下基于线程池的网络访问基础框架

引言 现在的Android开发很多都使用Volley.OkHttp.Retrofit等框架,这些框架固然有优秀的地方(以后会写代码学习分享),但是我们今天介绍一种基于Java线程池的网络访问框架. 实现思路及实现 APP界面上面的数据都是通过网络请求获取的,我们能不能将网络请求依次入队,然后配合着Java线程池,让线程依次处理我们的请求,最后返回结果给我们.下面我们先来看一下线程池工具类的实现: 1 public class ThreadPoolUtils { 2 3 private Threa

Android AsyncTask内部线程池异步执行任务机制简要分析

如下分析针对的API 25的AsyncTask的源码: 使用AsyncTask如果是调用execute方法则是同步执行任务,想要异步执行任务可以直接调用executeOnExecutor方法,多数情况下我们会使用AsyncTask内部静态的线程池, THREAD_POOL_EXECUTOR,这里并不是要分析AsyncTask内部的流程,而是简单介绍下线程池的工作流程.可以看到THREAD_POOL_EXECUTOR的配置如下: new ThreadPoolExecutor( CORE_POOL_

Android之AsyncTask线程池

asynctask 相比于 handler 在启动线程不多,代码要求简洁的情况下,使用起来相当方便 1.定义 public abstract class AsyncTask<Params, Progress, Result> 有三个参量,分别为输入参量,中间反馈参量,结果返回参量 2.继承及实例化 class myAsyncTask extends AsyncTask<String, Void, String> { TextView mytv; String tvname; //构

单例 --- 线程模式

1.Grand Central Dispatch --- GCD单次执行 --- 程序执行期间之执行一次 - (IBAction)GCD_onceDidClicked:(UIButton *)sender { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ // code }); } 2.在单例中的应用 --- 此方法正吻合单例的特性(只执行一次,只alloc一次) + (instancetype)shareMusic

Android中的线程池

总会有线程,总会有队列,等着被执行吧.so,让我们再深深看看线程池: 简介: 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用.为我们在开发中处理线程的问题提供了非常大的帮助. 作用: 线程池作用就是限制系统中执行线程的数量.     根据系统的环境情况,可以自动或手动设置线程数量,

Android多线程操作——线程池管理综述

题记-- 难过了,悄悄走一走: 伤心了,默默睡一觉: 优雅不是训练出来的,而是一种阅历: 淡然不是伪装出来的,而是一种沉淀: 时间飞逝,老去的只是我们的容颜: 时间仿佛一颗灵魂,越来越动人: 1.简述: 在多线程的世界中,是那么的神奇 与 高效以及合理: 2.创建线程池实例 官方推荐使用Executors类工厂方法来创建线程池管理,Executors类是官方提供的一个工厂类,里面封装了好多功能不一样的线程池,从而使得我们创建线程池非常的简单:                    3.使用线程池

Android 开发 ThreadPool(线程池) 总结

本文是介绍线程池的基础篇. 首先介绍一个方法,获取CPU个数: int cpuCount = Runtime.getRuntime().availableProcessors(); 一.创建异步线程的弊端. 1.每次new Thread创建对象,导致性能变差. 2.缺乏统一的管理,可能导致无限制的线程运行,严重的后果就是OOM 或者死机. 二.启用线程池的优点. 1.重用性大,减少对象的创建,提高性能. 2.可有效控制并发线程数,提高系统资源利用率,避免资源争夺. 3.可提供多种功能:定时.循环

Java多线程(四) 线程池

一个优秀的软件不会随意的创建很销毁线程,因为创建和销毁线程需要耗费大量的CPU时间以及需要和内存做出大量的交互.因此JDK5提出了使用线程池,让程序员把更多的精力放在业务逻辑上面,弱化对线程的开闭管理. JDK提供了四种不同的线程池给程序员使用 首先使用线程池,需要用到ExecutorService接口,该接口有个抽象类AbstractExecutorService对其进行了实现,ThreadPoolExecutor进一步对抽象类进行了实现.最后JDK封装了一个Executor类对ThreadP