社区
C语言
帖子详情
子进程和线程的区别?
nalfs
2001-10-18 02:53:32
在WINDOWS中,当一个进程需要由另一个实体去执行某件事时,往往是创建一个线程,让该线程去处理;而在LINUX/UNIX中,往往是该进程派生一个子进程,让子进程去处理。
问题:让子进程去处理和让线程去处理各有什么好处?在什么情况更适合用子进程,什么情况更适合用线程?
请各高手指点。谢谢!
...全文
1043
12
打赏
收藏
子进程和线程的区别?
在WINDOWS中,当一个进程需要由另一个实体去执行某件事时,往往是创建一个线程,让该线程去处理;而在LINUX/UNIX中,往往是该进程派生一个子进程,让子进程去处理。 问题:让子进程去处理和让线程去处理各有什么好处?在什么情况更适合用子进程,什么情况更适合用线程? 请各高手指点。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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不支持线程,线程是轻量级的进程?
进程和
线程
区别
?什么时候用
线程
、进程
————————————————————————————————·首先要明确一点:**进程的定义,
线程
的定义?**进程:是计算机中程序关于某个数据集合的一次运行活动;
线程
:是程序执行流的最小单元;从定义当中可以看出,进程之下有
线程
,也就是说,一个进程至少有一个
线程
,同时一个
线程
只能属于一个进程。那么,
线程
就是进程的一个实体。**笔者是这样理解二者之间的关系:**大家还记得大象装冰箱的故事吗?CPU...
程序、进程和
线程
有何
区别
1.进程与
线程
进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位.
线程
是进程的一个执行流,是C ...进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位.
线程
是进程的一个执行流,是CPU调度和分派的 ...
线程
是进程的一部分,如果没有进行显示的
线程
分配,可以认为进程是单
线程
的;
到底什么是
线程
?
线程
与进程有哪些
区别
?
进程,是比较“重量的”速度慢/消耗资源多的,那么创建一个进程,成本比较高;销毁一个进程,成本也比较高;调度一个进程,成本也挺高的。进程包含
线程
,一个进程里可以有多个
线程
,多个
线程
之间也是并发执行的。那么
线程
,则是更轻量的进程(轻量级进程),一个进程中可以包含多个
线程
,此时这多个
线程
每个
线程
都是一个独立可以调度执行的“执行流”,同时这些进程共用一份进程的系统资源,(意味着,对于
线程
而言,系统资源是已经分配好了的,创建
线程
就省下了分配资源开销)。
腾讯面试题04.进程和
线程
的
区别
?
进程和
线程
的
区别
? 进程和
线程
的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而
线程
只是一个进程中的不同执行路径。
线程
有自己的堆栈和局部变量,但
线程
之间没有单独的地址空间,一个
线程
死掉就等于整个进程死掉,所以多进程的程序要比多
线程
的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享
什么是进程?什么是
线程
?进程和
线程
之间的
区别
是什么?
什么是进程?什么是
线程
? 进程是系统中正在运行的一个程序,程序一旦运行就是进程。 进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。 一个进程可以拥有多个
线程
,每个
线程
使用其所属进程的栈空间。
线程
与进程的一个主要
区别
是,统一...
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章