您的位置:首页 > 移动开发 > Android开发

android 基础4

2015-09-28 16:26 483 查看
认识线程(Thread) 模式

进程与线程的区别与联系

 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为
232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

线程,在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是
CPU 调度的一个基本单位。

Android采取Java的Thread框架,来协助建立多条线程并行的环境。

在Java里,撰写一个类别支持Runnable接口,在搭配Thread基类,就能顺利诞生一个新线程 

来执行该类别的run()函数。

认识Android的主线程(处理UI线程,又称UI线程)

UI线程的诞生:

当我们启动一只APP时,Android就会诞生新进程(Process),并且将该APP程序加载在新诞生的进程里。

每个进程在其诞生时刻,都会诞生一个主线程,又称UI线程。

在进程诞生时刻,除了诞生主线程之外,还会替主线程诞生它专用的Message Queue 和 Looper.

View控件是有UI线程(主线程)所执行,如果需要去迅速更新UI画图或者UI画图需要较长时间(避免阻塞主线程),

就使用SurfaceView.它可以有背景线程(background thread)来执行,而View只能有UI线程执行画面显示或更新。

在SurfaceView里,非UI线程可以去触碰UI显示。例如将图形绘制在Surface画布上,这SurfaceView内含

高效率的rendering机制,能让背景线程快速更新surfaceView的内容,适合演示动画。

如何解决线程安全问题?

同步(synchronization)化解线程安全问题。

使用synchronized机制可以错开两个线程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: