最近项目中经常用到设置线程的优先级。在网上查了一下资料。
对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要。Android在线程方面主要使用的是Java本身的Thread类,我们可以在Thread或Runnable接口中的run方法首句加入
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程优先级为后台,这样当多个线程并发后很多无关紧要的线程分配的CPU时间将会减少,有利于主线程的处理,有以下几种:
int THREAD_PRIORITY_AUDIO //标准音乐播放使用的线程优先级
int THREAD_PRIORITY_BACKGROUND //标准后台程序
int THREAD_PRIORITY_DEFAULT // 默认应用的优先级
int THREAD_PRIORITY_DISPLAY //标准显示系统优先级,主要是改善UI的刷新
int THREAD_PRIORITY_FOREGROUND //标准前台线程优先级
int THREAD_PRIORITY_LESS_FAVORABLE //低于favorable
int THREAD_PRIORITY_LOWEST //有效的线程最低的优先级
int THREAD_PRIORITY_MORE_FAVORABLE //高于favorable
int THREAD_PRIORITY_URGENT_AUDIO //标准较重要音频播放优先级
int THREAD_PRIORITY_URGENT_DISPLAY //标准较重要显示优先级,对于输入事件同样适用。
优先级范围是 -20 (高) 到 +19 (低). 不要选得 太高
最好使用预先定义在 android.os.Process 的constants : Process.THREAD_PRIORITY_LOWEST = 19
Process.THREAD_PRIORITY_BACKGROUND = 5
Process.THREAD_PRIORITY_DEFAULT = 0
Process.THREAD_PRIORITY_FOREGROUND = -5
Process.THREAD_PRIORITY_DISPLAY = -10
Process.THREAD_PRIORITY_URGENT_DISPLAY = -15
分享到:
相关推荐
对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要
activity生命周期、线程优先级、异常销毁、任务栈 参考代码
activity生命周期、线程优先级、异常销毁、任务栈.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
用于app模块初始化,可区分进程,线程,并设置优先级
我们知道,多线程是Android开发中必现的场景,很多原生API和开源项目都有多线程的内容,这里简单总结和探讨一下常见的多线程切换方式。 我们先回顾一下Java多线程的几个基础内容,然后再分析总结一些经典代码中对于...
对于移动开发者来说,“将耗时的任务放到子线程去执行,以保证UI线程的流畅性”是线程编程的第一金科玉律,但这条铁则往往也是UI线程不怎么流畅的主因。我们在督促自己更多的使用线程的同时,还需要时刻提醒自己怎么...
listview/gridview加载显示大量图片,对内存和性能都...3. 调整Load线程优先级为Thread.NORM_PRIORITY-1,不要和UI线程抢时间片,使滚动更流畅。 该代码用listview作为示范,但是里面用到的技术完全可以用于gridview。
然后通过.run()方法让线程开始执行,创建ThreadPriorityQueue对象的时候,你可以通过addThread()方法添加线程,其中第一个参数是Thread对象,第二个参数是你自己设置线程的优先级(值范围是1~10,优先级越高线程越先...
AppExecutor 应用线程池,可以指定任务的优先级,以及任务执行顺序
1:队列优先级 (如果想要listview中移动的区域优先被显示,而不是从上到下显示图片,可以把新建的任务提到任务队列前端) 2:实现了:中断任务的功能(比如进入一个Activity会开启大量任务,如果退出这个Activity ...
包括环境搭建教程、创建模拟器、新建helloworld程序、电话拨号器、软件部署到模拟器、短信发送器、线性布局、相对布局、日志、activity、Android进程线程及优先级、Android UI线程阻塞及优化、广播接受者、Service...
在Java中,较高优先级的Runnable线程应抢在较低优先级线程前面执行 D. 分时技术允许线程一直运行,直到时间片内的时间用完。然后执行相同优先级的其它线程 2. 下列哪个方法能将Sprite对象进行旋转 : ( A ) A. ...
leetcode安卓 Android校招面试指南 Java Android 数据结构 ...Android进程优先级 尹star Android Context详解 HELLO丶GUY Fragment详解 Shawon Android推送技术 徐凯强Andy 动态规划 aaronice LeetCode
leetcode安卓 Android校招面试指南 Java Android 数据结构 ...Android进程优先级 尹star Android Context详解 HELLO丶GUY Fragment详解 Shawon Android推送技术 徐凯强Andy 动态规划 aaronice LeetCode
3.5 理解应用程序的优先级和进程状态 49 3.6 分离资源 50 3.6.1 创建资源 50 3.6.2 使用资源 57 3.6.3 To-Do List资源示例 60 3.6.4 为不同的语言和硬件创建资源 61 3.6.5 运行时配置更改 62 3.7 深入探讨...
3.1.3 秘诀14:设置线程优先级 45 3.1.4 秘诀15:取消线程 45 3.1.5 秘诀16:在两个应用程序之间共享线程 46 3.2 线程之间的消息机制:handler 46 3.2.1 秘诀17:从主线程调度runnable 任务 46 3.2.2 秘诀18:...
2.5 小结 第3章 创建应用程序和活动 3.1 Android应用程序的组成部分 3.2 程序清单简介 3.3 使用清单编辑器 3.4 Android应用程序生命周期 3.5 理解应用程序的优先级和进程状态 3.6 分离资源 3.6.1 创建资源 3.6.2 ...
(3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求 (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2、android-async-http 项目地址:...