社区
C语言
帖子详情
子进程和线程的区别?
nalfs
2001-10-18 02:53:32
在WINDOWS中,当一个进程需要由另一个实体去执行某件事时,往往是创建一个线程,让该线程去处理;而在LINUX/UNIX中,往往是该进程派生一个子进程,让子进程去处理。
问题:让子进程去处理和让线程去处理各有什么好处?在什么情况更适合用子进程,什么情况更适合用线程?
请各高手指点。谢谢!
...全文
1015
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不支持线程,线程是轻量级的进程?
什么是进程?什么是
线程
?进程与
线程
的
区别
?
目录 什么是进程?什么是
线程
? 为什么要有
线程
? 进程与
线程
的
区别
? 进程与
线程
的选择取决条件? 什么是进程?什么是
线程
? 进程:进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用程序一旦执行,就是一个进程。每个进程都有自己独立的地址空间,...
什么是进程?什么是
线程
?进程和
线程
之间的
区别
是什么?
什么是进程?什么是
线程
? 进程是系统中正在运行的一个程序,程序一旦运行就是进程。 进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。 一个进程可以拥有多个
线程
,每个
线程
使用其所属进程的栈空间。
线程
与进程的一个主要
区别
是,统一...
什么是进程?和
线程
区别
?
进程和
线程
有什么
区别
?
进程和
线程
的概念和
区别
?进程和
线程
的使用场景?
进程和
线程
的概念和
区别
?进程和
线程
的使用场景?1. 进程2. 什么是
线程
3. 进行和
线程
之间的
区别
4. 进行和
线程
之间的相同点5. 进程和
线程
的使用场景 1. 进程 进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。 程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列 进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。 2. 什么是
线程
线程
是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位。 一个进程可以由很多个
线程
组
程序和进程和
线程
的
区别
是什么?
程序和进程和
线程
的
区别
是什么?
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章