`
1927105
  • 浏览: 150390 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于进程、线程、单例和android的单线程模型UI

 
阅读更多

进程: 启动一个应用程序并入驻内存, 被操作系统视为一个进程,windows一个进程占用的内存不能大于2G, 一个线程默认分配内存为1m,所以一个进程中大概能存活2000个线程。

线程: 线程是进程的实例, 一个进程通常会产生多个线程用来处理并发操作,比如 B/S 应用,启动server应用程序,浏览器请求服务,server端都可能启动一个线程。

单例: 单例和上面的概念没有关系。 只是保证全局应用也就是一个进程中只能有一个类的实例。但是多线程访问进行写操作时,可能造成线程不安全,这个主要是实例变量造成的。

Android的单线程模型UI: Android的UI(activity)被设计为单线程模型。而且更改 UI属性只能在UI所在的线程进行, 比如:UI异步通信若用Thread那么更改UI属性需要用Handler来处理。当然也可以直接用Handler异步通信,也可以用<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} code {mso-ansi-font-size:12.0pt; mso-bidi-font-size:12.0pt; font-family:宋体; mso-ascii-font-family:宋体; mso-fareast-font-family:宋体; mso-hansi-font-family:宋体; mso-bidi-font-family:宋体;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --><!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->runOnUiThread()

分享到:
评论

相关推荐

    全面android面试题

    7. **异步处理**:AsyncTask、Handler、Looper、Message以及IntentService的用法,理解线程和进程的区别,知道如何避免UI线程阻塞。 8. **BroadcastReceiver**:广播接收器的概念,如何注册和使用,以及有序广播和...

    大厂的Android面试题.pdf

    - Handler机制允许主线程与工作线程之间交换消息,避免UI线程阻塞。 21. **Android事件传递机制** - Android事件传递涉及触摸事件、按键事件等,通过ViewTreeObserver等类处理。 22. **线程间操作List** - 在多...

    android面试.zip

    10. **系统知识**:对于Android系统的工作原理,如进程通信,权限管理,多线程,网络协议等,有一定的理解也是必不可少的。 为了在面试中脱颖而出,除了掌握上述知识点,还要不断实践,提升自己的项目经验和解决...

    android面试题

    在Android开发领域,面试是检验开发者技能和经验的重要环节。这份"android面试题"文档很可能会涵盖各种核心技术、设计模式、性能优化以及最新趋势等方面的问题。以下是一些可能出现在面试中的关键知识点,对于准备...

    android面试题精选(无答案)

    8. **IntentService**:IntentService是一个单线程的Service,自动处理Intent,完成任务后自动停止,适合处理后台异步任务。 9. **Context**:Context是Android应用程序的基础,它提供了访问应用程序组件和系统服务...

    百度校园招聘历年经典面试题汇总:Android岗

    - **线程**:进程内的执行单元,共享进程的资源。 - **Golang的协程**:轻量级线程,由Golang调度器管理。 #### 47. Android Service与广播 - **Service**:后台运行的任务,与用户界面分离。 - **广播**:一种...

    Android面试系列—目录

    Android中进程与线程的理解 - **进程**:独立运行的基本单位,具有独立的地址空间。 - **线程**:进程中的执行单元,多个线程可以在同一进程中并发执行。 #### 20. Android中的存储方式及其适用场合 - **文件存储*...

    android知识点整理

    - **Thread和Service的区别**:Thread是执行任务的线程,而Service是Android四大组件之一。 - **线程同步和安全**:使用synchronized关键字或Lock对象保证线程安全。 - **IntentService和Service的区别**:...

    百度腾讯等公司面试题

    5. **操作系统**:进程与线程的区别、内存管理、调度策略、死锁概念和预防、I/O模型(同步/异步,阻塞/非阻塞)等是操作系统面试中的基础内容。 6. **计算机网络**:TCP/IP五层模型或七层模型、HTTP协议、TCP连接...

    IT各大公司笔试面试题

    - 进程与线程:理解进程间通信(IPC)、同步与互斥、死锁,线程的创建与销毁,以及调度策略。 - 内存管理:了解虚拟内存、页表、内存分配与回收,以及缓存机制。 - 文件系统:理解文件的I/O操作,文件的组织形式...

    安卓面试题

    - **ZYGOTE**:Android启动的第一个进程,负责创建应用程序进程。 #### 68. 第三方注册登录 - **OAuth**:授权协议,用于第三方登录。 - **SDK集成**:集成第三方登录SDK。 #### 69. Fragment实现 - **生命周期**...

    java面试题及答案-非常全面(包括基础、网络、数据结构、算法及IT大厂面经)

    - **技术栈**:Android开发环境、UI设计等。 ### J2EE #### Structs/Spring - **Struts**:基于MVC模式的Web框架。 - **Spring**:轻量级的控制反转(IoC)和面向切面编程(AOP)容器。 #### IOC及Bean容器 - *...

    程序设计.rar

    11. **操作系统原理**:对操作系统的基础知识,如进程、线程、内存管理、I/O模型的理解,能帮助写出更高效、更稳定的程序。 12. **计算机网络**:了解TCP/IP协议、HTTP协议以及网络请求的原理,有助于处理网络相关...

Global site tag (gtag.js) - Google Analytics