打印

进程与线程的认知

[复制链接]
693|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OldMouth|  楼主 | 2016-8-7 19:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了一些进程和线程的知识,故来整理下自己对多进程和多线程的认知,博客发表不了,就放到这里。认识比较浅薄,且作抛砖引玉了,还望路过的小伙伴们留下自己的见解。

Windows上讲“应用程序是进程的容器”。就是说一个应用程序可以有多个进程组成,是这多个进程分担了应用程序的所有工作。多进程直观体现在比如搜狗打字时,一个进程管理显示,一个进程处理通过已经打出的字母来联想到一些常用词。

进程是最小的资源分配单元,从这个角度来讲,CPU根本不在意有多少应用程序,他只管有多少个进程。可以同时运行多个应用程序的实质还是可以同时开多个进程。多进程是为提高资源利用率而生的!

多线程的出现是为了解决、补充多进程的某些缺点的。比如多进程的在切换调度时开销大。多线程的切换调度的开销就小很多。

但是进程间相互独立,一个进程崩了,不影响其他进程,但是一个线程挂了就可能影响到同进程的其他线程。

相关帖子

沙发
zyj9490| | 2016-8-8 00:01 | 只看该作者
我的观点,应用程序只不过二进制的源台(类),进程是应用程序的COPY(实例,OBJECT),因此,电脑里跑的是进程,而不是应用程序,一个应用程序可以在电脑里跑多个相同的进程,如写字板,只不过进程空间不一样(独立的)。应用程序这个名词是在DOS糸统时的有的,因为那时的应用程序独占软硬件资源,现在糸统下严格来说是错误的。软硬件资源不被实例独占,凭操作糸统分配的。可以共享全部资源。

使用特权

评论回复
板凳
nethopper| | 2016-8-8 16:37 | 只看该作者
虽然一个应用程序可以包含多个进程(Process),但应用程序应该首先是线程(Thread)的容器,就是说一个应用程序通常只由一个进程构成,而该进程可由一个或多个线程组成, 这些线程分担了一个应用程序同时所做的多个工作。多线程直观体现在比如WORD打字时,一个线程管理打字,一个线程检查拼写错误等......

在同一进程中的多个线程之间的数据交换远比不同进程之间的数据交换来得高效,原因是它们能存取同样的内存空间,所以同一程序一般都采用多线程而非多进程来同时完成多个工作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

24

帖子

1

粉丝