导航:首页 > 操作系统 > android线程池使用

android线程池使用

发布时间:2022-05-28 19:06:28

android什么时候使用线程池

线程池的具体实现为ThreadPoolExeutor,其接口为Executor。
ThreadPoolExecutor提供了一系列的参数用于配置线程池。

public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory) {

⑵ Android 对线程封装了:AsyncTask, HandlerThread和线程池。 有知道这三个如何选择吗

AsyncTask性能不怎么高,而且还有内存泄漏的隐患。之所以现在没有删掉这个类库,是因为很多应用都是基于这个库的,Google这边一删,别人软件就崩了。

⑶ android java单线程线程池需要单例模式吗

单例模式就是某个类在这个系统中只有一个实例,我个人觉得不管是在单线程,还是多线程都可以使用,不是说需不需要,是看实际的业务需不需要这个类的实例就只有一个,像安卓的Application就是单例的,希望能帮助到你,望采纳。

⑷ android 线程池有什么用

//在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<Runnable> workQueue = new LinkedBlockingDeque<Runnable>();
mExecutor = new ThreadPoolExecutor(POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS, workQueue, factory);
}
// 在线程池中执行线程
public void submit(Runnable command){
mExecutor.execute(command);
}
}

⑸ android 怎样将线程池封装到自己的网络请求底层

对异步请求封装 ,可用作基本项目框架来使用
1)封装HttpClient
2)由于用到线程池,可以进行多任务网络请求操作
3)没有网络的时候进行网络状态检查
4)对请求的数据根据URL进行缓存到本地sqlite数据库中
5)本demo可以直接运行 本来想测试protobuf进行数据处理的 要放在github上就改成json了
只能提供大概轮廓,代码还是需要你去写,因为你的项目只能根据你想法来写

⑹ android什么场景下使用线程池

service作用能够为你运行的任务添加优先级。优先级别,依次减弱。前台进程,可视进程,次要服务进程,后台进程,内容供应节点,空进程。还可以做远程服务(AIDL) 查看原帖>>

⑺ android 线程池 怎么用

我觉得使用线程池最大的优点是我们可以对我们开启的线程进行跟进,当我们不需要处理的时候可以将它shutdow掉,同时当我们定义了一个线程池之后,可以复用线程而不需要开启更多线程,这点对于我们手机开发是至关重要的,你开启的thread越多意味着你的app内存消耗越多,速度也就越来越慢,提高现有线程的复用是一个很棒的选择

线程池中处理线程的类别较多如:

限制按顺序来执行任务的线程池、一个一个任务的执行线程池、按指定个数来执行任务的线程池、创建一个可在指定时间里执行任务的线程池,亦可重复执行、按指定工厂模式来执行的线程池

⑻ android 线程池需要关闭吗

不需要关闭

线程池的引入好处:
1.提升性能。创建和消耗对象费时费CPU资源
2.防止内存过度消耗。控制活动线程的数量,防止并发线程过多。
3.线程池技术能提高服务器程序性能的,还显着减少了创建线程的数目。
4.在Android中当同时并发多个网络线程时,引入线程池技术会极大地提高APP的性能。

⑼ Android的App中线程池的使用,具体使用多少个线程池

一般是按照CPU的核数来定义,例如是4核的,一般一个fixed线程池定义为4个线程左右。

⑽ 如何终止 android线程池中的任务

Executor 提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成 Future 的方法。

可以关闭 ExecutorService,这将导致其拒绝新任务。提供两个方法来关闭 ExecutorService。shutdown() 方法在终止前允许执行以前提交的任务,而 shutdownNow() 方法阻止等待任务启动并试图停止当前正在执行的任务。在终止时,执行程序没有任务在执行,也没有任务在等待执行,并且无法提交新任务。应该关闭未使用的 ExecutorService 以允许回收其资源。

通过创建并返回一个可用于取消执行和/或等待完成的 Future,方法 submit 扩展了基本方法 Executor.execute(java.lang.Runnable)。方法 invokeAny 和 invokeAll 是批量执行的最常用形式,它们执行任务 collection,然后等待至少一个,或全部任务完成(可使用 ExecutorCompletionService 类来编写这些方法的自定义变体)。
Executors 类提供了用于此包中所提供的执行程序服务的工厂方法。

阅读全文

与android线程池使用相关的资料

热点内容
香港云服务器操作 浏览:303
wpe最新源码 浏览:857
自己购买云主服务器推荐 浏览:422
个人所得税java 浏览:761
多余的服务器滑道还有什么用 浏览:192
pdf劈开合并 浏览:29
不能修改的pdf 浏览:752
同城公众源码 浏览:489
一个服务器2个端口怎么映射 浏览:298
java字符串ascii码 浏览:79
台湾云服务器怎么租服务器 浏览:475
旅游手机网站源码 浏览:332
android关联表 浏览:946
安卓导航无声音怎么维修 浏览:333
app怎么装视频 浏览:431
安卓系统下的软件怎么移到桌面 浏览:96
windows拷贝到linux 浏览:772
mdr软件解压和别人不一样 浏览:904
单片机串行通信有什么好处 浏览:340
游戏开发程序员书籍 浏览:860