




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、B02_a基於軟硬整合觀點认识線程(Thread)模式(a)By 高煥堂內容1. 线程(Thread)概念2. Java的线程框架3. 认识Android的主线程(又称UI线程)4. 细说主线程(UI线程)的角色5. 线程之间的通信架构6. Android UI的单线程环境基於軟硬整合觀點1、线程(Thread)概念 所谓线程(Thread) 是指一串连续的执行动作,以达成一项目的。 現代的电脑内部都有数串连续性的动作同时在进行。也就是有多条线程并行地(Concurrently)执行。 在电脑中,若电脑拥有多颗CPU,则每颗CPU 可各照顾一个线程,于是可多个线程同时间进行。若只有单一CPU,
2、则此CPU 可同时(Concurrently)照顾数个线程。 无论是多CPU或单一CPU的电脑,多条线程并行地执行,都可增加执行效率。 像Java、C+等现代的电脑语言都能让程序师们能够易于创建多条线程减化GUI 动画的设计工作,也可增加其执行效率。 例如,当您想一边看动画,一边听音乐时, 计算机能同时产生两个线程“秀动画” 及“播音乐”。甚至可产生另一条线程来为您做特殊服务,如让您可选择动画及音乐。 多条线程能并行地执行同一个类别,或者是不同的类别。 在Android平台里也不例外,无论是在Java 层或是C+层,都常常见到多条线程并行的情形。 Android采取Java的Thread框架,
3、来协助建立多條线程並行的环境。 在Java里,大家已经习惯撰写一个类别来支持Runnable接口,再搭配Thread基类就能顺利诞生一个新线程来执行该类别里的run()函数了。基於軟硬整合觀點2、Java的线程框架 Java提供一个Thread基类(Super Class)来支持多线程功能。这个基类协助诞生(小)线程,以及管理(小)线程的进行,让电脑系统更容易取得程序师的指示,然后安排CPU 来运作线程里的指令。 例如,线程所欲达成的任务(Task)是程序师的事,所以程序师应填写线程里的指令, 来表达其指示。 为配合此部份的运作,Java提供了Runnable接口,其定义了一个run()函数。
4、 于是,程序师可撰写一个应用类别(Application Class)来实作(Implement)此界面,并且把线程的任务写在应用类别的run()函数里,如此即可让(小)线程来执行run()函数里的任务了。 这是几乎每一位Java开发者都常用的多线程(Multi-thread)机制,只是许多人都会用它,却不曾认识它的真实身影:就是一个幕后的框架。由于Android应用程序开发也采用Java语言,所这个Thread框架也成为Android大框架里的一个必备元素。 基于这个框架里的Thread基类和Runnable 接口,你就可以撰写应用类别,来实作run() 函数了,如下图:生小掠桯 :小統程
5、于此图里,框架的Thread基类会先诞生一个小线程,然后该小线程透过Runnable接口,调用(或执行)了Task类别的run()函数。 例如,请看一个Java程序:/Ex01-01.javaclass Task implements Runnable public void run() int sum = 0;for (int i = 0; i Threadruno、 + startO:小掠程 Runnable生主掠程汪 IstartOI Threadruno 、 . +startO 11生小掠程泾RunnableT 生主掠程汪 IstartOobje ct汪 JMain生 object 汪
6、 Task+ runoE 就框架的结构而言,上图里的Runnable接口与Thread基类是可以合并起来的。也就是把run()函数写在Thread的子类别里。如下图:Thre ad+ startO于+ runostartQJMain亨。myThreadI 。 Runnable框架 nu r App+ runo 兹撰写一个Java程序(即改写上述的Ex01- 01.java)来实现上图:class myThread extends Thread public void run() int sum = 0;for (int i = 0; i = 100; i+) sum += i;System.out.println(Result: + sum);public class JMain public static void main(String args) Thread t = new myThread(); t.start(); System.out.println(Waiting.); 其诞生一个myThread对象,并且由JMain 调用Thread的start()函数。这start()就产生一个小线程去执行 myThread子类别里的run()函数。上图是类关系图,其对象关系图,可表示如下: 、生 super object 汪 湮生恒小掠程去埶行runo二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 废玻璃混凝土火后残余性能及TRC加固机理研究
- 基于深度学习的桥梁故障预测诊断研究
- 健康教案:变色龙主题教学设计
- 金融系统核心业务流程架构
- 痔疮的护理查房
- 脑出血康复健康指导
- 颈腰椎病健康讲座课件
- 妇科护理知识年度总结
- 幼儿园家长工作案例培训
- 《网页设计与制作》课件-第4Fireworks综合应用
- 2025年广东高考政治试卷真题答案详解讲评(课件)
- 卡口及道路交通智能监控系统方案设计
- 2025年家庭照护师职业资格考试试题及答案
- 呼吸机相关性肺炎的预防和护理
- 2025年绥化市中考化学试题卷(含答案解析)
- 门诊口腔院感基础知识培训
- 论咏叹调《妈妈不在》的形象刻画与唱段处理
- 危重病人观察和护理要点
- 砌体工程培训课件
- GB/T 45719-2025半导体器件金属氧化物半导体(MOS)晶体管的热载流子试验
- 2025-2030中国医药商业行业盈利态势与投资潜力分析报告
评论
0/150
提交评论