进程和线程的区别

说实话,刚进入这个行业的时候,我对流程、流程思考了很多。
您提供的段落大部分使事情变得清晰,但换种方式可能会更直观。

我们来谈谈Windows系统。
你打开Word,就会有一个过程。
只需记住 exe 文件的名称即可。
但是,当您在 Word 中同时打字、查字典和保存文件时,这些事情实际上是由不同的线程完成的。
一个进程必须至少有一个线程,否则程序将无法运行。

最有趣的是记忆。
这些过程“各自以自己的方式”进行,并且不会相互干扰。
但进程中的线程就像住在同一屋檐下的家庭成员,共享房子的布局(代码、数据),但每个人都有自己的小盒子(线程堆栈、程序计数器)。
这会导致什么结果呢?在Word 输入线程和词典搜索线程之间切换比关闭Word 并重新启动它要快得多。
我对此进行了测试,它可能会节省一两秒钟。
确切的数字可能会有所不同,具体取决于您的计算机。

关于对人际关系的影响,你是对的。
我的服务器出现问题,某个线程被卡住,导致整个应用程序冻结。
后来我们改用多进程架构。
即使一个进程死掉了,其他进程仍然可以继续运行。
就像一个家庭:如果一个成员生病了,他可以请假,但如果整个家庭都破产了,那么整个家庭都会受苦。

对于执行过程来说,过程是程序执行的一个完整体,有开始和结束。
线程不起作用,它们必须“寄生”进程。
这有点像公司的部门。
部门(流程)没有公司(应用)就无法生存。

我个人没有运行过这方面的分布式系统,但是我听说在Linux上使用pthread库创建线程的成本比在Windows上低得多。
据我记得,Windows下创建线程大约需要1 0微秒,但我建议你使用最新版本的系统重新测试。
现在技术发展得太快了。

进程和线程的区别是什么

进程是独立的,线程共享资源。
进程崩溃不会影响其他进程。
线程冲突会导致整个进程崩溃。
进程创建的成本很高,而且线程很小。
进程切换慢,线程快。
多进程隔离性强,多线程速度快但需要同步。
进程间通信比较复杂,而线程间通信则简单但需要同步。
多处理适用于隔离任务,而多线程适用于 I/O 和网络。
现代系统结合了两个世界的优点:线程池和 Docker。
你自己掂量一下。

线程和进程的区别是什么

啊?你的总结非常全面,就像课堂笔记一样,但有点正式。
关于此进程和线程的另一份报告?
想一想,这件事最核心的区别就是操作系统如何给你分配资源。
你可以这样想:进程就像操作系统分配给你的一个独立的房间。
它有自己独立的空间。
它有自己的内存、文件等,互不干扰。
如果你对你的细胞造成损坏,比如晃动东西(进程崩溃),隔壁房间的人(其他进程)根本不会受到影响,对吧?就像你在使用电脑时,浏览器上的一个选项卡坏了,整个浏览器仍然可以使用,因为它有多个进程。
如果其中一个挂起,其他不会受到影响。
线程和种子就像住在你房间里的其他人一样。
它们共享相同的空间(地址空间),可以直接使用彼此的“东西”(全局变量、缓存内存)。
这就是拯救邪恶。
如果你想分享,就说吧。
是的,但是有一个湖。
例如,如果一个人请求死亡所有的内阁(发生错误并且处理不当),那么整个内阁(进程)就会被破坏。
所以你看,共享线程很容易,但它们也很危险。

谈论费用。
如果要换房间(换房流程),是不是要把所有东西都捡起来搬出去再搬?够麻烦了吧?但如果房间里一个人换到下层避难所(电线交换)就简单多了,换个位置继续睡。
因此,改变线程速度更快,适合需要运行很多小任务并经常停下来等待其他事情的情况(比如客户端服务器进程的请求,或者移动鼠标时窗口必须响应)。
交换过程要慢很多,需要保存和恢复很多。
数据共享也很清晰。
如果进程想要共享东西,就必须穿墙发送消息或者发送特快专递(IPC),太麻烦了。
至于电线,在同一个房间里,你可以把它伸长,从别人那里拿东西,但要有规则,谁先拿,收到后放回原处,否则所有乘客都会逃走(这就是同步装置的作用,比如锁和信号量,防止数据被链接)。

强度和稳定性也有类似的逻辑。
它们是“自给自足”的过程。
如果其中一个失败,不会影响其他人。
适合需要独立运行的分布式任务。
这些电线是“同舟共济”的,一件事就可能毁掉整条船,因此对错误处理的需求很高。

适用的任务有哪些,你看清楚了吗?那些需要独立操作和高度隔离的应用,例如浏览器选项卡和处理不同客户端的服务器,则使用进程。
那些需要频繁通信、协作和提高效率的应用程序(例如处理并发连接的服务器和响应用户操作的 GUI)使用线程。

最后,说到占领力量,这个过程与地点无关,必须占用很大的空间。
房间里有很多人。
他们共用一个房间,只占一张小床(一堆铁丝),轻便多了。

在某些方面,您会看到,进程和线程各有其自身的优点和缺点。
没有人是绝对的好或绝对的坏。
在实际开发中,进程和线程经常一起使用,以寻求平衡。
就像你把一栋房子拆开,在里面设置几个隔断,它们都可以独立并轻松共享。
你必须选择你想做的事情。