社区
C语言
帖子详情
子进程和线程的区别?
nalfs
2001-10-18 02:53:32
在WINDOWS中,当一个进程需要由另一个实体去执行某件事时,往往是创建一个线程,让该线程去处理;而在LINUX/UNIX中,往往是该进程派生一个子进程,让子进程去处理。
问题:让子进程去处理和让线程去处理各有什么好处?在什么情况更适合用子进程,什么情况更适合用线程?
请各高手指点。谢谢!
...全文
1023
12
打赏
收藏
子进程和线程的区别?
在WINDOWS中,当一个进程需要由另一个实体去执行某件事时,往往是创建一个线程,让该线程去处理;而在LINUX/UNIX中,往往是该进程派生一个子进程,让子进程去处理。 问题:让子进程去处理和让线程去处理各有什么好处?在什么情况更适合用子进程,什么情况更适合用线程? 请各高手指点。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Fiven_Luo
2001-10-20
打赏
举报
回复
子进程有自己的资源,比线程独立于父进程,可以在父进程退出后执行,如LINUX的守护进程就是这样的,线程使用的是父进程的资源,在父进程退出后跟着退出。
kuai_kevin
2001-10-19
打赏
举报
回复
1
进程复制代码段和数据段,线程共享代码段,只复制数据段,因此线程效率高。但进程之间没有干扰,编程时比较方便,不用考虑加锁同步之类的。
类库
2001-10-19
打赏
举报
回复
进程和线程的效率高低似乎决定于所用的操作系统,windows的图形界面下创建线程比进程高效,而unix/linux下似乎是用多进程的多一点。
Last_Dodo
2001-10-19
打赏
举报
回复
进程间没有共享。线程间只有栈不共享。进程除了栈外还有很多东西(不在此列出因为从不同的角度看会有不同)。线程对栈外的数据操作应特别小心因为其它线程也可能在用(所以常用到锁和条件变量)。
fsheron
2001-10-18
打赏
举报
回复
线程运行在同一地址空间,而进程不是。
tjm
2001-10-18
打赏
举报
回复
xuexi
shy007
2001-10-18
打赏
举报
回复
系统资源分配给进程,而线程只有cpu资源和一些必须的栈和寄存器,所以进程切换比线程切换慢得多,如果是切换比较频繁的job的话,用线程。windows中进程只是资源管理者,不是真正的程序执行者,执行工作由线程完成,即使不显式产生线程,系统有一个缺省得主线程运行。
swat
2001-10-18
打赏
举报
回复
马和骡子的区别
net_star
2001-10-18
打赏
举报
回复
进程:
需要进程表,必须在系统中注册运行。 具有独立的环境变量存储区。
线程: 附属于一个进程,同其他线程共享进程打开的文件,Socket等待资源,共享环境变量。 可以这样认为,一个进程是有很多个线程组成的。
启动一个进程必启动一个线程速度慢地多,而且占用更多的资源,不过启动进程之间相互独立,并不因为一个进程死亡而全部覆没,不过进程间通讯是一件比较痛苦的事情。线程比较简单,可以容易的互相通讯,不过如果一个出现问题,那么进程退出,个÷什么都丢了。
选择进程还是线程,要根据实际需要,是否需要共享资源,之间的互操作是否比较多,是否需要大量的并行,等等,如果是这些的话,选择线程。负责,启动的任务之间资源共享比较少,任务间通讯比较少,那么选择进程。
在Unix中,系统会将一个进程分为多个LWP轻量级进程,其实同线程相当,一个线程基本上对应好几个LWp的。
beyond_ml
2001-10-18
打赏
举报
回复
具体应用中,线程和进程的使用远比一些书上介绍的要复杂的多。
进程中主要面对的问题是进程间通讯(数据不共享,但操作起来安全,很费资源)
线程中主要面对的问题是线程同步(数据共享,但操作起来不安全,节省资源)
然后就是具体问题,具体分析了。
ajiefudan
2001-10-18
打赏
举报
回复
线程对系统的消耗大大小于进程。
在Linux/Unix中也可以用线程处理。
不过在Linux中没有明确的线程的概念,它的线程就是轻进程。
如果你在Linux的进程中开了4个子线程,你用ps就可以看到6个相同的进程。
如果你处理的事相同,用fork,然后用IPC同步,
如果处理的事不同,那么用线程比较好,因为你可以对不同的情况开不同的线程来处理
hellion
2001-10-18
打赏
举报
回复
某些Unix不支持线程,线程是轻量级的进程?
什么是进程?什么是
线程
?进程与
线程
的
区别
?
进程与
线程
的
区别
? 进程与
线程
的选择取决条件? 什么是进程?什么是
线程
? 进程:进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用...
到底什么是
线程
?
线程
与进程有哪些
区别
?
那么
线程
,则是更轻量的进程(轻量级进程),一个进程中可以包含多个
线程
,此时这多个
线程
每个
线程
都是一个独立可以调度执行的“执行流”,同时这些进程共用一份进程的系统资源,(意味着,对于
线程
而言,系统资源是...
腾讯面试题04.进程和
线程
的
区别
?
进程和
线程
的
区别
? 进程和
线程
的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而
线程
只是一个进程中的不同执行路径。
线程
有自己...
什么是进程?什么是
线程
?进程和
线程
之间的
区别
是什么?
什么是进程?什么是
线程
? 进程是系统中正在运行的一个程序,程序一旦运行就是进程。 进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的...
线程
与进程的一个主要
区别
是,统一...
什么是进程?和
线程
区别
?
进程和
线程
有什么
区别
?
C语言
70,024
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章