android 线程池 怎么用,android中的线程池 怎么用
满意答案
qpierq0n5
2016.05.02
采纳率:52% 等级:13
已帮助:8164人
//在Android中实现线程池,首先需要实现一个线程工厂(ThreadFactory)的子类,具体实现方式如下所示(PriorityThreadFactory.Java):
import android.os.Process;
/**
* A thread factory that create threads with a given thread priority
* @author jony
* @version 1.0
*/
public class PriorityThreadFactory implements ThreadFactory{
private final String mName;
private final int mPriority;
private final AtomicInteger mNumber = new AtomicInteger();
public PriorityThreadFactory(String name, int priority) {
mName = name;// 线程池的名称
mPriority = priority;//线程池的优先级
}
@Override
public Thread newThread(Runnable r) {
return new Thread(r, mName +"-"+mNumber.getAndIncrement()){
@Override
public void run() {
// 设置线程的优先级
Process.setThreadPriority(mPriority);
super.run();
}
};
}
}
//以上是创建线程池的一个工具类,接下来为大家介绍本篇文章的重点,线程池的实现方式,具体实现方式如下所示(MyThreadPool.java):
package com.tcl.actionbar;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
package com.tcl.actionbar;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.ThreadFactory;
// 线程池的实现方式
public class MyThreadPool {
private final static int POOL_SIZE = 4;// 线程池的大小最好设置成为CUP核数的2N
private final static int MAX_POOL_SIZE = 6;// 设置线程池的最大线程数
private final static int KEEP_ALIVE_TIME = 4;// 设置线程的存活时间
private final Executor mExecutor;
public MyThreadPool() {
// 创建线程池工厂
ThreadFactory factory = new PriorityThreadFactory("thread-pool", android.os.Process.THREAD_PRIORITY_BACKGROUND);
// 创建工作队列
BlockingQueue workQueue = new LinkedBlockingDeque();
mExecutor = new ThreadPoolExecutor(POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS, workQueue, factory);
}
// 在线程池中执行线程
public void submit(Runnable command){
mExecutor.execute(command);
}
}
//自己觉得这个·代码不错,我就只是将它搬了过来,实际代码地址:http://blog.csdn.net/weihan1314/article/details/7983725
00分享举报
android 线程池 怎么用,android中的线程池 怎么用相关推荐
- c语言数据库线程池,C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0...
typedef struct { }LoanInfos; typedef struct{ int cp;//主线程编号 int thread;//线程编号 long int time; int arr ...
- java线程池怎么创建_java中的线程池,如何创建?
Java中的线程池它是线程的容器,或者(换句话说,它是具有执行任务能力的线程的集合). 我们可以使用ThreadPool框架来定位(或实现)线程池. 线程池可以包含多个线程.每当我们执行任何任务时,线 ...
- java 线程状态_浅析Java中的线程状态
一.线程的5种状态 众所周知,Java的线程状态有5种,分别对应上图中五种不同颜色,下面对这5种状态及状态间的转化做相应的解释: 1. 初始化状态:新建一个线程对象 2. 可运行状态:其他线程调用了该 ...
- java中线程的生命周期_Java中的线程生命周期– Java中的线程状态
java中线程的生命周期 Understanding Thread Life Cycle in Java and Thread States are very important when you a ...
- 如何查找历史线程阻塞原因_java并发编程-线程状态,线程阻塞方式,阻塞中的线程如何终止?...
前面的例子通过volatile boolean来让任务终止,那么如果任务阻塞了? 如何终止它?本文来看下,参考think in java . 线程的状态 1.new:线程创建后的短暂状态,其分配系统资 ...
- C# 线程手册 第二章 .NET 中的线程 线程的优势
额,我猜你现在可能会这么想"既然线程会对我的程序产生负面影响,那么我为什么要使用它呢?".其实问题的关键不在于到底用不用线程,而在于何时何地使用线程.知道在什么情况下应该使用线程是 ...
- java 如何杀线程,您如何杀死Java中的线程?
如何杀死Java中的java.lang.Thread ? #1楼 在Java中,不会杀死线程,但是以协作方式完成线程的停止. 要求线程终止,然后线程可以正常关闭. 通常使用一个volatile boo ...
- java异步线程数_spring异步service中处理线程数限制详解
情况简介 spring项目,controller异步调用service的方法,产生大量并发. 具体业务: 前台同时传入大量待翻译的单词,后台业务接收单词,并调用百度翻译接口翻译接收单词并将翻译结果保存 ...
- python进程线程协程区别_Python中 进程 线程 协程
一.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在 ...
- pythonscrapy爬虫ip代理池_在Scrapy中使用IP池或用户代理(python3)
一.创建Scrapy工程 1 scrapy startproject 工程名 二.进入工程目录,根据爬虫模板生成爬虫文件 1 scrapy genspider -l # 查看可用模板2 scrapy ...
最新文章
- SAP Batch Derivation功能初探之二
- python3 线程_threading模块
- mac远程桌面Microsoft Remote Desktop for Mac的安装与使用
- java 图片去除黑边_根据 Map 上的变量绘制彩色和形状的点时,保持符号的黑色边框(geom_point)...
- Oracle添加主键和唯一约束最佳实践
- Spring映射器、适配器、解析器
- Cocos2d-x层(Layer)详解
- linux timeout 格式,Linux内核API wait_for_completion_timeout
- [Scikit-learn教程] 03.02 文本处理:分类与优化
- WinRAR4.0注册码
- php万能表单制作教程,万能表单 · 极致CMS建站系统帮助文档 · 看云
- Exce如何行内随机排序确定出场顺序
- HashMap底层实现原理概述
- 转:将HTML5封装成android应用APK文件的几种方法
- access口 环路_交换机二层环路问题处理指南[苍松参考]
- 2020 0414对象的多态
- 数据库(笔记)——三个世界与数据模型
- 爱因互动王守崑:未来机器人的服务质量会显著高于人类
- python中两个除号连用是什么意思啊_【人人都是Pythoner】——python3中“变革”了的除号...
- c++处理excel