Devik进程、Linux进程和线程

        Devik虚拟机是运行在Linux操作系统上的,Linux操作系统并没有纯粹的进程概念,只要两个进程共享一个地址空间,那么就可以认为他们是同一个进程的两个线程。Linux提供了两个fork和clone调用,其中,前者是用来创建进程的,而后者是用来创建线程的。

        一般来说虚拟机的进程和线程都是和本地操作系统的进程和线程一一对应的,这样的好处是可以使本地操作系统来调度进程和线程。

每一个安卓应用程序都有一个Devik虚拟机实例。这样做的好处是安卓应用程序之间的进程不会受到影响,也就是说,一个安卓应用程序的进程意外终止,不会影响其他应用程序的进行。

每一个安卓应用程序都是由一个称为Zygote的进程fork出来的,Zygote进程是由init进程启动的,也就是在系统启动的时候启动。Zygote进程在启动的时候会启动虚拟机实例,并且这个虚拟机实例将所有的Java核心库都加载起来。每当Zygote进程需要创建一个安卓应用程序进程的时候,他就通过复制自身来实现,也就是通过fork系统调用来实现。这些被fork出来的安卓应用程序进程,一方面是复制了Zygote进程的虚拟机实例,另一方面是与Zygote进程共享了同一套JAVA核心库这样不紧安卓应用程序创建的很快,而且所以的应用程序共用一套JAVA核心库节省了内存空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值