您的位置:首页 > 其它

关于进程和线程比较好的一个解释

2015-08-09 08:57 337 查看
进程和线程的区别,这是一个许多程序员面试会碰到的问题,本人非计算机专业出身,所以被问到这种基础问题的次数更多,也看过很多解释,下面这个算是比较不错的一个解释:

进程(process),指的是一个正在运行中的可执行文件。每一个进程都拥有独立的虚拟内存空间和系统资源,包括端口权限等,且至少包含一个主线程和任意数量的辅助线程。另外,当一个进程的主线程退出时,这个进程就结束了。

线程(thread),指的是一个独立的代码执行路径,也就是说线程是代码执行路径的最小分支。在 iOS 中,线程的底层实现是基于 POSIX threads API 的,也就是我们常说的 pthreads

下面是对两者的一些补充

当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。应用程序(application)是由一个或多个相互协作的进程组成的。

进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

一个进程可以包含若干个线程,由于线程比进程小,所以他们基本上不拥有系统资源(只拥有一点在运行中必不可少的资源,如程序计数器,一组寄存器和栈),他们只能利用他们归属进程(一个线程只能归属一个进程)的资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  进程 线程