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