CMS
测试文档1
1
测试一个EditorMD
asdad
测试
测试测试12344134
test
撒大撒
dfsdfs
ce
添加一个文本文档
大师傅
个富文本
在线表格
这是一个简单的超链接
测试测试
测试文档
www
qwe
qwe1223
123
测试文档
测试表格
测试新增
测试
12233
测试文档1
测试0902
092-1
目标
地铁大厦车辆停放服务协议
开户许可证
深圳的一个客户
ces
说明书
Only office
进程和线程的区别和联系
测试我们
x测试在线编辑
表格
123
测试
112342355
121ces
llkl
阿顺丰到付
1212
111111111111
预算架构
Only Office
整体介绍
ces
1111
222
1232
2
-
+
home page
进程和线程的区别和联系
**概念上** 最开始就是一个进程跑完再跑另一个进程,后来有多道程序分派之后,我们可以利用进程调度算法来在一个电脑上跑多个程序,在我们用户看来这些程序是一起运行的。随着技术的发展,多核处理器的实现使得线程越来越普及,因此我们计算机就可以适配多核出现了线程。 **进程:**进程是系统中正在运行的程序。是计算机分配资源的单位,每一个进程都会有属于自己独立的内存空间,磁盘空间,I\O设备等等。比如说windows中的任务管理器,每一行都是一个进程。在同一进程中还是在不同进程中时系统功能划分的重要决策点。 > 可以把进程比做一个人。每个人都有自己的记忆(内存),人与人通过谈话(消息传递)来交流,谈话既可以面谈( ![=video_iframe]()同一个电脑),也可以远程谈(不同服务器,网络通信)。面谈和远程的区别在于,面谈的话可以立刻知道对方死没死(SIGCHILD信号),而远程只能通过周期性的信条来判断对方是否活着。 **线程:**线程是任务调度的基本单元。(现在来看这局话其实就是正在运行的一个程序有很多任务,而线程是将任务呈现出细粒度,更精确了)其实我觉得线程主要扮演的角色就是如何利用cpu处理代码,完成当前进程中的各个子任务。各个子线程之间共享父进程的代码空间和全局变量,但是每个进程都有自己独立的堆栈,即局部变量对于线程来说是私有的。因此创建多进程代价有点大,在一个进程中创建多线程代价要小很多。 线程大概93年出现的,有SUN Solaris操作系统使用的线程叫做**UNIX International线程**,现在一直用的POSIX线程(POSIX threads),Pthreads线程的头文件是`<pthread.h>`,Win32线程是Windows API的一部分。 线程的特点就是共享地址空间,从而可以高效的共享数据。多线程的价值在于更好的发挥了多核处理器的效能,在单核时代多线程没啥用,因为就一个核心,一个执行单元,按状态机的思路去写程序是最高效的。 **内核实现上** 进程和线程的相同点要远远大于不同点。主要依据就是在 Linux 中,无论进程还是线程,都是抽象成了 task 任务,在源码里都是用 task_struct 结构来实现的。 <img src="https://cdn.jsdelivr.net/gh/guaguaupup/cloudimg/data/202210121007426.png" alt="图片" style="zoom:67%;float:left" />
admin
March 13, 2025, 11:57 a.m.
0 条评论
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
Word文件
PDF文档
PDF文档(打印)
share
link
type
password
Update password
有效期