满意答案

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中的线程池 怎么用相关推荐

  1. c语言数据库线程池,C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0...

    typedef struct { }LoanInfos; typedef struct{ int cp;//主线程编号 int thread;//线程编号 long int time; int arr ...

  2. java线程池怎么创建_java中的线程池,如何创建?

    Java中的线程池它是线程的容器,或者(换句话说,它是具有执行任务能力的线程的集合). 我们可以使用ThreadPool框架来定位(或实现)线程池. 线程池可以包含多个线程.每当我们执行任何任务时,线 ...

  3. java 线程状态_浅析Java中的线程状态

    一.线程的5种状态 众所周知,Java的线程状态有5种,分别对应上图中五种不同颜色,下面对这5种状态及状态间的转化做相应的解释: 1. 初始化状态:新建一个线程对象 2. 可运行状态:其他线程调用了该 ...

  4. java中线程的生命周期_Java中的线程生命周期– Java中的线程状态

    java中线程的生命周期 Understanding Thread Life Cycle in Java and Thread States are very important when you a ...

  5. 如何查找历史线程阻塞原因_java并发编程-线程状态,线程阻塞方式,阻塞中的线程如何终止?...

    前面的例子通过volatile boolean来让任务终止,那么如果任务阻塞了? 如何终止它?本文来看下,参考think in java . 线程的状态 1.new:线程创建后的短暂状态,其分配系统资 ...

  6. C# 线程手册 第二章 .NET 中的线程 线程的优势

    额,我猜你现在可能会这么想"既然线程会对我的程序产生负面影响,那么我为什么要使用它呢?".其实问题的关键不在于到底用不用线程,而在于何时何地使用线程.知道在什么情况下应该使用线程是 ...

  7. java 如何杀线程,您如何杀死Java中的线程?

    如何杀死Java中的java.lang.Thread ? #1楼 在Java中,不会杀死线程,但是以协作方式完成线程的停止. 要求线程终止,然后线程可以正常关闭. 通常使用一个volatile boo ...

  8. java异步线程数_spring异步service中处理线程数限制详解

    情况简介 spring项目,controller异步调用service的方法,产生大量并发. 具体业务: 前台同时传入大量待翻译的单词,后台业务接收单词,并调用百度翻译接口翻译接收单词并将翻译结果保存 ...

  9. python进程线程协程区别_Python中 进程 线程 协程

    一.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在 ...

  10. pythonscrapy爬虫ip代理池_在Scrapy中使用IP池或用户代理(python3)

    一.创建Scrapy工程 1 scrapy startproject 工程名 二.进入工程目录,根据爬虫模板生成爬虫文件 1 scrapy genspider -l # 查看可用模板2 scrapy ...

最新文章

  1. SAP Batch Derivation功能初探之二
  2. python3 线程_threading模块
  3. mac远程桌面Microsoft Remote Desktop for Mac的安装与使用
  4. java 图片去除黑边_根据 Map 上的变量绘制彩色和形状的点时,保持符号的黑色边框(geom_point)...
  5. Oracle添加主键和唯一约束最佳实践
  6. Spring映射器、适配器、解析器
  7. Cocos2d-x层(Layer)详解
  8. linux timeout 格式,Linux内核API wait_for_completion_timeout
  9. [Scikit-learn教程] 03.02 文本处理:分类与优化
  10. WinRAR4.0注册码
  11. php万能表单制作教程,万能表单 · 极致CMS建站系统帮助文档 · 看云
  12. Exce如何行内随机排序确定出场顺序
  13. HashMap底层实现原理概述
  14. 转:将HTML5封装成android应用APK文件的几种方法
  15. access口 环路_交换机二层环路问题处理指南[苍松参考]
  16. 2020 0414对象的多态
  17. 数据库(笔记)——三个世界与数据模型
  18. 爱因互动王守崑:未来机器人的服务质量会显著高于人类
  19. python中两个除号连用是什么意思啊_【人人都是Pythoner】——python3中“变革”了的除号...
  20. c++处理excel

热门文章

  1. 【bzoj 4455】小星星(树型DP+容斥原理+dfs建树和计算的2种方式)
  2. (一二四)给类对象赋值、以及类对象的返回值
  3. Windows 8.1 轻量接触接触方式部署(二)
  4. C# xsd转C#类(转)
  5. 一些必看的jQuery导航插件和教程
  6. MVC TIP7:自定义IHttpModule、IRouteHandler实现路由调试
  7. 也谈虚拟化的服务器选型,以及性能考虑
  8. PHP(ThinkPHP5.0) + PHPMailer 进行邮箱发送验证码
  9. Python 5 运算符
  10. JavaScript 继承