C语言 c++ php mysql nginx linux lnmp lamp lanmp memcache redis 面试 笔记 ppt 设计模式 问题 远程连接

随笔 - 305  文章 - 1  评论 - 50  阅读 - 168万

进程与线程

 


进程和线程明显的界限就在于:虚拟地址空间的共享和不共享。

Linux没有进程和线程,只有Task。但是Task与Task之间是区别的,当克隆发生时,不同Task之间的最大和最小共享级别不同。

进程是一个资源单元,而线程是一个调度和执行单元。
线程共享进程的资源。
每个进程中至少存在一个内核线程。
一句话概括线程和进程: 你要共享,就用线程;你要独立,就用进程
这种明显的区分,往往是编程语言需要做的事情,方便开发者使用相应的语言特性

执行与调度的基本单位:thread
资源所有权:process
什么是资源呢,就是内存,文件,socket等

进程是资源的容器,包含(一个或)多个线程。 内核调度的基本单位是线程、而非进程。
同一进程下的各个线程共享资源(address space、open files、signal handlers,etc),但寄存器、栈、PC等不共享

 

参考:https://www.zhihu.com/question/44087187

 

 

posted on   思齐_  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2013-08-10 谷歌主页动画效果——利用视距暂留原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示