关于进程和线程比较好的一个解释
2015-08-09 08:57
337 查看
进程和线程的区别,这是一个许多程序员面试会碰到的问题,本人非计算机专业出身,所以被问到这种基础问题的次数更多,也看过很多解释,下面这个算是比较不错的一个解释:
进程(process),指的是一个正在运行中的可执行文件。每一个进程都拥有独立的虚拟内存空间和系统资源,包括端口权限等,且至少包含一个主线程和任意数量的辅助线程。另外,当一个进程的主线程退出时,这个进程就结束了。
线程(thread),指的是一个独立的代码执行路径,也就是说线程是代码执行路径的最小分支。在 iOS 中,线程的底层实现是基于 POSIX threads API 的,也就是我们常说的 pthreads
下面是对两者的一些补充
当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。应用程序(application)是由一个或多个相互协作的进程组成的。
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
一个进程可以包含若干个线程,由于线程比进程小,所以他们基本上不拥有系统资源(只拥有一点在运行中必不可少的资源,如程序计数器,一组寄存器和栈),他们只能利用他们归属进程(一个线程只能归属一个进程)的资源
进程(process),指的是一个正在运行中的可执行文件。每一个进程都拥有独立的虚拟内存空间和系统资源,包括端口权限等,且至少包含一个主线程和任意数量的辅助线程。另外,当一个进程的主线程退出时,这个进程就结束了。
线程(thread),指的是一个独立的代码执行路径,也就是说线程是代码执行路径的最小分支。在 iOS 中,线程的底层实现是基于 POSIX threads API 的,也就是我们常说的 pthreads
下面是对两者的一些补充
当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。应用程序(application)是由一个或多个相互协作的进程组成的。
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
一个进程可以包含若干个线程,由于线程比进程小,所以他们基本上不拥有系统资源(只拥有一点在运行中必不可少的资源,如程序计数器,一组寄存器和栈),他们只能利用他们归属进程(一个线程只能归属一个进程)的资源
相关文章推荐
- C#线程间不能调用剪切板的解决方法
- C#实现进程管理的启动和停止实例
- DOS中判断进程是否存在的方法
- C#进程监控方法实例分析
- 批处理 结束麦咖啡进程的代码
- PowerShell查看进程的所属用户
- C#实现强制关闭当前程序进程
- C#线程同步的三类情景分析
- C#子线程更新UI控件的方法实例总结
- C++使用CriticalSection实现线程同步实例
- VC实现获取当前正在运行的进程
- 基于C++实现的线程休眠代码
- win32下进程间通信(共享内存)实例分析
- C语言实现在windows服务中新建进程的方法
- VC下通过系统快照实现进程管理的方法
- C++基于CreateToolhelp32Snapshot获取系统进程实例
- C#实现关闭其他程序窗口或进程代码分享
- VB读取线程、句柄及写入内存的API代码实例
- C#使用SendMessage实现进程间通信的方法
- C#网络编程基础之进程和线程详解