线程和进程的比较
来源:互联网 发布:小说书架软件 编辑:程序博客网 时间:2024/06/06 00:09
线程和进程的比较
1、相同点:
(a)二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。(b) 每个进程都有一个进程控制块,线程也拥有一个线程控制块。
(c) 线程和子进程共享父进程中的资源;线程和子进程独立于它们的父进程,竞争使用处理器资源;线程和子进程的创建者可以在线程和子进程上实行某些控制,比如,创建者可以取消、挂起、继续和修改线程和子进程的优先级;线程和子进程可以改变其属性并创建新的资源。
2、不同点:
(a) 线程是进程的一部分, 一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。
(b) 启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。(c)系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。而一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方便。
(d) 与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。
(e) 进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。
还有一些可以参考Jackie发表的日志《线程,进程和程序的简单比较 》。
- 线程和进程的比较
- 线程,进程和程序的简单比较
- 进程和线程的资源比较
- 线程,进程和程序的简单比较
- 线程,进程和程序的简单比较
- 进程和线程的详细比较
- 线程,进程和程序的简单比较
- Linux进程和线程的比较
- c#中的进程和线程的比较
- Linux的进程和Win32的进程/线程比较
- 线程和进程的比较&java如何创建线程
- 线程的概念和模型以及与进程的比较
- 线程与进程的比较
- 线程与进程的比较
- 线程与进程的比较
- 进程与线程的比较
- 线程与进程的比较
- 线程与进程的比较
- Android Studio设置字体
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
- 一个mat和iplimage以及使用cvInRangeS批量修改矩阵值例子
- 记 FineUI 官方论坛所遭受的一次真实网络攻击!做一个像 ice 有道德的黑客!
- 简单介绍GDB 调试程序
- 线程和进程的比较
- poj 1456 Supermarket(贪心+并查集,贪心+优先队列)
- 苹果参考
- HTTP协议/IIS 原理及ASP.NET运行机制浅析
- Unity出现 error building player exception android (invocation failed)
- POJ1753、未解。
- java 死锁产生原因及解锁
- WebService .net web服务
- 学会提问-- 批判性思维指南--读书笔记(以及转载李笑来的字里行间)