文章标题
2015-07-15 11:54
295 查看
线程与进程
一个进程是一个独立的执行空间,不会被正在其他进程里的程序所侵犯。这种保护方法是android的重要安全机制,在android的进程里,有一个虚拟机(Virtual Machine.简称VM)的对象。可执行java代码,也引导jni本地程序的执行,实现java与c/c++之间的沟通。
每一个进程都有一个vm对象,主线程,MQ,和looper。每个进程在诞生时,都会诞生一个主线程(Main Thread).以及一个looper类的对象和一个MQ(message queue)数据结构。每当主线程做完事情,就会去执行Looper类。
所以说线程相当于人,进程相当于饭堂,不同的人可以进到饭堂里面,不同的线程可以到进程里面执行,不同的进程的地址空间是独立的,一个进程不能进到另一个进程里面。
主线程最主要的工作就是处理UI画面的事件(event)。每当UI事件发生时,android框架会丢信息(Message)到MQ里面,主线程看到MQ有新的信息时,就取出信息,然后依据信息内容而去执行特定的函数。执行完毕,就再继续执行Looper类。
当两个类都在同一个进程里面执行时,两者之间的沟通,只要采取一般的函数调用(FUNCTION CALL)就行了,即快速又方便,一旦两个类分别在不同的进程里面执行时,两者的沟通就不能采取一般的函数调用途径了,只好采取IPC沟通途径。
一个进程是一个独立的执行空间,不会被正在其他进程里的程序所侵犯。这种保护方法是android的重要安全机制,在android的进程里,有一个虚拟机(Virtual Machine.简称VM)的对象。可执行java代码,也引导jni本地程序的执行,实现java与c/c++之间的沟通。
每一个进程都有一个vm对象,主线程,MQ,和looper。每个进程在诞生时,都会诞生一个主线程(Main Thread).以及一个looper类的对象和一个MQ(message queue)数据结构。每当主线程做完事情,就会去执行Looper类。
所以说线程相当于人,进程相当于饭堂,不同的人可以进到饭堂里面,不同的线程可以到进程里面执行,不同的进程的地址空间是独立的,一个进程不能进到另一个进程里面。
主线程最主要的工作就是处理UI画面的事件(event)。每当UI事件发生时,android框架会丢信息(Message)到MQ里面,主线程看到MQ有新的信息时,就取出信息,然后依据信息内容而去执行特定的函数。执行完毕,就再继续执行Looper类。
当两个类都在同一个进程里面执行时,两者之间的沟通,只要采取一般的函数调用(FUNCTION CALL)就行了,即快速又方便,一旦两个类分别在不同的进程里面执行时,两者的沟通就不能采取一般的函数调用途径了,只好采取IPC沟通途径。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统