- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android多线程程序设计
多线程
程序、进程和线程程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的产生、存在和消亡的过程,也是一个动态的概念。每个进程都有一段专用的内存区域,而线程间可以共享相同的内存区域(包括代码和数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。?
调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间;抢占式调度是根据线程的优先级别来获取CPU的使用权。
所谓的“并发执行”、“同时”其实都不是真正意义上的“同时”。
众所周知,CPU都有个时钟频率,表示每秒中能执行cpu指令的次数。在每个时钟周期内,CPU实际上只能去执行一条(也有可能多条)指令。
操作系统将进程线程进行管理,轮流(没有固定的顺序)分配每个进程很短的一段是时间(不一定是均分),然后在每个线程内部,程序代码自己处理该进程内部线程的时间分配,多个线程之间相互的切换去执行,这个切换时间也是非常短的。
超线程技术使用CPU的不同部分同时执行指令,当资源冲突时需要等待。
多核技术使用不同的CPU同时执行指令。
JAVA与多线程
Java语言的多线程需要操作系统的支持。
?
Java 虚拟机允许应用程序并发地运行多个执行线程。Java语言提供了多线程编程的扩展点,并给出了功能强大的线程控制API。
?
在Java中,多线程的实现有两种方式:
1、扩展java.lang.Thread类
public class TestMitiThread {
??? public static void main(String[] rags) {
??????? System.out.println(Thread.currentThread().getName() + 线程运行开始!);
??????? new MitiSay(A).start();
??????? new MitiSay(B).start();
??????? System.out.println(Thread.currentThread().getName() + 线程运行结束!);
??? }
}
?
class MitiSay extends Thread {
??? public MitiSay(String threadName) {
??????? super(threadName);
??? }
?
??? public void run() {
??????? System.out.println(getName() + 线程运行开始!);
??????? for (int i = 0; i 10; i++) {
??????????? System.out.println(i + + getName());
??????????? try {
??????????????? sleep((int) Math.random() * 10);
??????????? } catch (InterruptedException e) {
??????????????? e.printStackTrace();
??????????? }
??????? }
??????? System.out.println(getName() + 线程运行结束!);
??? }
}
2、实现java.lang.Runnable接口
public class TestMitiThread1 implements Runnable {
?
??? public static void main(String[] args) {
??????? System.out.println(Thread.currentThread().getName() + 线程运行开始!);
??????? TestMitiThread1 test = new TestMitiThread1();
??????? Thread thread1 = new Thread(test);
??????? Thread thread2 = new Thread(test);
??????? thread1.start();
??????? thread2.start();
??????? System.out.println(Thread.currentThread().getName() + 线程运行结束!);
??? }
?
??? p
您可能关注的文档
- 3G时代的机遇.ppt
- 4G介绍.ppt
- 4G相关规范培训2014年新版.ppt
- AD域服务器详细搭建.ppt
- Android介绍与环境.ppt
- Android应用开发基础.ppt
- Android操作系统终端简介和基础操作.ppt
- Android的回调机制.ppt
- Android项目开发视频教程.ppt
- App Inventor简介.ppt
- GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 中国国家标准 GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 《GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs)》.pdf
- GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- 中国国家标准 GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 中国国家标准 GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 《GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样》.pdf
- 《GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯》.pdf
- 中国国家标准 GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯.pdf
最近下载
- 老年冠心病慢病管理指南(2023版)解读PPT课件.pptx VIP
- ISO14001:2015环境管理手册.pdf
- 少先队活动课《我爱国旗》(课件)-小学生主题班会三年级.pptx
- 01-03 医院信息系统升级方案(昆医二院-Cache2010+HIS 7.0升级到Cache2016+HIS P8.0P).docx
- 3D打印技术--英文1.ppt
- 一次性使用医疗用品管理.pptx VIP
- 喘病的护理常规ppt.pptx
- 非简并态微扰能量三级修正波函数二级修正论稿.doc
- 第一单元 第三节 常用的栽培技术 课件 云南教育出版社劳技八年级上册.ppt
- 经济学基础(高鸿业第三版)课后习题答案.pdf VIP
文档评论(0)