进程与线程的区别

来源:互联网 发布:php留言板视频教程 编辑:程序博客网 时间:2024/04/30 21:49

学习多线程的时候必然会遇到另外一个名词:进程。二者一字之差有什么区别呢?
看的一本书上有这样一段话:
Windows操作系统是多任务操作系统,它是以进程为单位。一个进程是一个包含有自身地址的程序,每个独立执行的程序都称为进程,也就是正在执行的程序。系统可以分配给每一个进程一段有限的使用CPU的时间(也可叫CPU时间片),CPU在这段时间中实行某个进程,然后下一个时间片又调至另一个进程中去执行。由于CPU转换较快,所以是的每个进程好像是同时执行一样。
一个线程则是进程中的执行流程,一个进程可以同时包括多个线程,每个线程也可以得到一小段程序的执行时间,这样一个进程就可以具有多个并发执行的线程。在单线程中,程序代码按调用顺序依次往下执行,如果需要一个进程同时完成多段代码的操作,就需要产生多线程。
可以从上面两段话中得出:
线程是指进程内的一个执行单元,也是进程内的可调度实体。
线程的划分尺度小于进程,使得多线程程序的并发性高。
线程是处理器调度的基本单位。
进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源。
二者均可并发执行。
简而言之,一个程序至少有一个进程,一个进程至少有一个线程。
参考链接:
http://www.cnblogs.com/flashsky/articles/642720.html
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

0 0
原创粉丝点击