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机制可以错开两个线程。
进程与线程的区别与联系
进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 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机制可以错开两个线程。
相关文章推荐
- android学习地址和文章总结
- Android类-Activity
- Android里面的service方法为何没有加同步机制
- 怎样给你的Android 安装文件(APK)减肥
- Android笔记:关于so文件
- Android中ListView异步加载数据
- Android 5.1 SystemServer SystemService 各个系统Manager
- android中ListView的HeaderView的Padding详解
- Android学习中的一些记录
- 安装AndroidStudio1.3.2
- Volley在没有网的情况下使用磁盘缓存的数据
- 如何调试分析Android中发生的tombstone
- Android 信号处理面面观 之 信号定义、行为和来源
- ANDROID内存优化(大汇总——中)
- android activity launchMode 四种方式的区别
- ANDROID内存优化(大汇总——上)
- Android 工程重命名错误
- 在手机的sd卡上创建一个以当天日期为命名的文件夹
- 如何去除iOS和Android中的输入URL的控件条
- 简单实用的Android ORM框架TigerDB