b02_c_认识線程thread模式_ok_W_第1页
b02_c_认识線程thread模式_ok_W_第2页
b02_c_认识線程thread模式_ok_W_第3页
b02_c_认识線程thread模式_ok_W_第4页
b02_c_认识線程thread模式_ok_W_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基於軟硬整合觀點B02_c认识線程(Thread)模式(c )By 高煥堂 当我们启动某一支AP时,Android就会诞生新进程(Process),并且将该AP程序加载这新诞生的进程里。每个进程在其诞生时 刻,都会诞生一个主线程,又称为UI线程。UI线程的诞生 在进程诞生时刻,除了诞生主线程之外, 还会替主线程诞生它专用的Message Queue和Looper。如下图所示:21 这个Main Looper就是让主线程没事时就来执行Looper,确保主线程永远活着而不会死掉;在执行Looper时,会持续观察它的Message Queue是否有新的信息进来; 如果有新信息进来的话,主线程就会尽快

2、去处理(响应)它。 在Android环境里,一个应用程序常包含有许多个类别,这些类别可以分布在不同进程里执行,或挤在一个进程里执行。例如有一个应用程序的AndroidManifest.xml文件内容如下:/ AndroidManifest.xml/ Android依据这个文件而将各类别布署于两个进程里执行,如图:12其中,FirstActivity和LoadActivity两个类别会加载预设的进程里。而LoadService则会加载于名为“remote”的独立进程里。 于是,由进程#1的主线程去执行FirstActivity和LoadActivity的onCreate() 等函数。而由进程#2

3、的主线程去执行LoadService的onCreate()等函数。 各進程有自己的主(UI)線程2112 LoadService在独立的进程(名称叫“remote”)里执行。于是,FirstActivity与LoadService之间就属于跨进程的沟通了。这种跨进程的沟通,就是大家熟知的IPC(Inter-Process Communication)机制了。这种IPC机制是透过底层驱动(Driver) 来实现的。如下图: 在此图的不同进程里, 各有其主线程(Thread)。由于线程是不能越过进程边界的。所以,当执行LoadActivity的线程必须跨越进程去执行 LoadService( 的函

4、数) 时,Android 的 内 层 BinderSystem 即 刻 从LoadService 所在进程的线程池启动线程(BinderThread)来配合接力,由此BinderThread去执行LoadService。練習:绑定(Bind)远程的Service20 Binder System會從進程的線程池(Thread pool)裡啟動一個線程來執行Binder:onTransact()函數。当Thread_a必须跨越进程去执行JavaBBinder对象时,Android的内层Binder System即刻从myService所在进程的线程池启动线程Thread_x来配合衔接Thread_a线程,由Thread_x去执行JavaBBinder对象。 Android的每一个进程里,通常含有一个线程池,让跨进程的线程得以进行。虽然是由Thread_a与Thread_x相互合作与衔接而完成远距通讯的,但让人们能单纯地认为是单一进程(即Thread_a)跨越到另一个进程去执行JavaBBinder对象。虽然JavaBBinder是C/C+层级的;而myS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论