【OS】Process & Thread
| Process | Thread | |
| 定义 | 资源(CPU、内存等)分配的最小单元,是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。 | 程序执行的最小单元,CPU调度和分派的基本单元,每个线程有自己的堆栈和局部变量,在多CPU环境下就允许多个线程同时运行。 |
| 地址空间 | 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。 | 线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。 |
| 通信方式 | 进程间通信(IPC)有几种特殊的方式。 | 同一进程下的线程共享全局变量、静态变量等数据,需要通过进程同步、互斥的辅助,以保证数据的一致性。 |
| 健壮性 | 一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。 | 多线程程序只要有一个线程死掉,整个进程也死掉了。 |
以上
https://blog.csdn.net/zhou753099943/article/details/51771220
【OS】Process & Thread的更多相关文章
- 【OS】NMON的简介和使用
[OS]NMON的简介和使用 目前NMON已开源,以sourceforge为根据地,网址是http://nmon.sourceforge.net. 1. 目的 本文介绍操作系统监控工具Nmon的概念. ...
- 【转】Native Thread for Win32 C- Creating Processes(通俗易懂,非常好)
http://www.bogotobogo.com/cplusplus/multithreading_win32C.php To create a new process, we need to ca ...
- 【转】Native Thread for Win32 A- Create Thread(通俗易懂,非常好)
http://www.bogotobogo.com/cplusplus/multithreading_win32A.php Microsoft Windows operating system's s ...
- 【转】Native Thread for Win32 B-Threads Synchronization(通俗易懂,非常好)
http://www.bogotobogo.com/cplusplus/multithreading_win32B.php Synchronization Between Threads In t ...
- 【APUE】Chapter12 Thread Control
今天看了APUE的Chapter12 Thread Control的内容,记录一下看书的心得与示例code. 这一章的内容是对Chapter11 Threads(见上一篇日志)的补充,大部分内容都是理 ...
- 【转】php Thread Safe(线程安全)和None Thread Safe(NTS,非 线程安全)之分
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...
- 【转】Java Thread.join()详解
http://www.open-open.com/lib/view/open1371741636171.html 一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: ? 1 ...
- Python【OS】模块
import osprint(os.getcwd())#取当前工作目录#os.chmod("day6-os模块.py",2)#给文件/目录加权限,对Windows的下面不好使(1. ...
- 【转】c# thread.join 理解
转自:http://blog.csdn.net/lulu_jiang/article/details/6584251 线程Join()方法:让一个线程等待另一线程终结后再继续运行. private s ...
随机推荐
- hdu 6287 口算训练
题意: 小Q非常喜欢数学,但是他的口算能力非常弱.因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力. 每个 ...
- IP地址 0.0.0.0 是什么意思?
IP地址0.0.0.0是什么意思? 根据RFC文档描述,它不只是代表本机,0.0.0.0/8可以表示本网络中的所有主机,0.0.0.0/32可以用作本机的源地址,0.0.0.0/8也可表示本网络上的某 ...
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 166: illegal multibyte sequence
# -*- coding: utf-8 -*-# encoding = utf-8import unittestimport random class TestSequenceFunctions(un ...
- 创建我的vue项目
vue-cli 全局安装 1.命令行执行:npm install --global vue-cli: ------也可以用这个命令下载新版本 2.安装完成以后 可以输入命令 :vue 回车,可以看到针 ...
- Java8-对map过滤
1.对map按值过滤返回值 public class TestMapFilter { public static void main(String[] args) { Map<Integer, ...
- IIS的地址指向
地址指向 1)AuthwebAPI 修改web.xml文件 <connectionStrings> data source 改成当前虚拟环境的IP指向 </connectionSt ...
- 程序员 面试题【前端,java,php】
跬步客 网址:https://www.kuibuke.com/wall/index
- Spark大型电商项目实战-及其改良(3) 分析sparkSQL语句的性能影响
之前的运行数据被清除了,只能再运行一次,对比一下sparkSQL语句的影响 纯SQL的时间 对应时间表 th:first-child,.table-bordered tbody:first-child ...
- springboot+mybatis环境的坑和sql语句简化技巧
1.springfox-swagger实体类无限递归 https://hacpai.com/article/1525674135818 里面有不完美的解决方案 不用动源码的解决方案也有,在swagge ...
- shell 构建脚本基础
bash -v test.sh 启用 verbose 调试模式 bash -n test.sh 启用语法检查调试模式 bash -x test.sh 遍历脚本执行过程 一.基础参数 1.shell ...