社区
Linux/Unix社区
帖子详情
多进程与多线程的取舍
scbeans
2004-08-09 12:30:38
本人初学UNIX,看到很多代码里边用fork产生新进程去完成某项任务,但是我觉得这里用线程也可以,而且线程的开销比产生进程要小得多,也更轻巧,为什么线程在UNIX下就不怎么受欢迎呢?
另外,我在什么时候用多进程比较合适,什么时候用多线程比较好,欢迎赐教!!
...全文
304
10
打赏
收藏
多进程与多线程的取舍
本人初学UNIX,看到很多代码里边用fork产生新进程去完成某项任务,但是我觉得这里用线程也可以,而且线程的开销比产生进程要小得多,也更轻巧,为什么线程在UNIX下就不怎么受欢迎呢? 另外,我在什么时候用多进程比较合适,什么时候用多线程比较好,欢迎赐教!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我不懂电脑
2004-08-11
打赏
举报
回复
主要是因为采用多进程或线程的程序一般都是服务器,多进程的优点是健壮性和稳定性好,多线程处理不好会因为一个线程的崩溃造成整个系统死机
pacman2000
2004-08-10
打赏
举报
回复
线程的优点在于堆的数据共享,缺点也是这个,访问需要互斥。另外,标准库对线程支持比较麻烦。
sf390
2004-08-10
打赏
举报
回复
UP
starstargao
2004-08-10
打赏
举报
回复
楼上说的对,用线程共享了同一段进程空间,处理上会有一点麻烦
进程无所谓了
scbeans
2004-08-10
打赏
举报
回复
多谢、多谢!!
难怪我去面试的时候说用线程,考官的表情就有点怪!!
点滴皆收获
2004-08-10
打赏
举报
回复
UNIX fork是一个应用成熟的机制,所以这方面讲解较多;线程的应用是较新的东东,而且在某些系统又不成熟,所以较少用了;UNIX的版本有些不支持线程比如SCO等。
lysliberty
2004-08-09
打赏
举报
回复
线程虽然提高了资源的利用率,但是开发的复杂度,bug的出现机率大大增加;多进程虽然是
浪费了些资源,而且在多个进程之间切换会给系统带来一定程度的开销,但是随着COW等技术的出现,这种浪费在大大的减少.
所以,如果你的程序对资源利用率不是那么苛刻,还是用多进程编程好了.
xkak2
2004-08-09
打赏
举报
回复
1.线程是个比较新的东东,上个世纪90年代才开始流行起来。在这之前的系统都是基于进程的,已经有大量很成熟的应用了,总不至于因为线程的流行,就一夜之间突然放弃了吧!
2.不是所有的操作系统对线程的支持都很好。Linux2.6以前的内核,线程并不比进程有什么优势,FreeBSD5.0以前的版本也是如此。
smaxll
2004-08-09
打赏
举报
回复
多线程比多进程麻烦些,考虑的问题比较多,如读写互斥等。
多进程编程比较简单,
fork()的子进程拷贝父进程的内存映象,
资源利用率没多线程的高。
如用vfork()等函数就是为了避免这种资源浪费。
scbeans
2004-08-09
打赏
举报
回复
up
进程线程模型-250715141413.pdf
进程线程模型-250715141413.pdf
多线程
还是
多进程
的选择及区别
鱼还是熊掌:浅谈
多进程
多线程
的选择 关于
多进程
和
多线程
,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“
多进程
好还是
多线程
好?”、“Linux下用
多进程
还是
多线程
?”等等期望一劳永逸的问题,我只能说:没有最好,只有更
多线程
与
多进程
区别
至于”数据共享、同步“、“编程、调试”、“可靠性”这几个维度的所谓的“复杂、简单”应该怎么
取舍
,只能说:没有明确的选择方法。保证指令原子的指向不被打断,Linux系统提供了一些常用操作的原子指令,,包括原子整数操作和原子位操作,必须为atuomic_t类型的整数(32位的整数,24位数据,8bits的锁)信号的处理是进程中所有线程共享的(注意:如果信号的默认处理是终止该进程那么即是把信号传给某个线程也一样会将进程杀掉);进程中的所有信息对该进程的所有线程都是共享的;...
多进程
和
多线程
的使用场景
多进程
和
多线程
的使用场景
多进程
模型的优势是CPU。
多线程
模型主要优势为线程间切换代价较小,因此适用于I/O密集型的工作场景,因此I/O密集型的工作场景经常会由于I/O阻塞导致频繁的切换线程。同时,
多线程
模型也适用于单机多核分布式场景。
多进程
模型,适用于CPU密集型。同时,
多进程
模型也适用于多机分布式场景中,易于多机扩展。 一. 两者区别 进程是分配资源的基本单位;线程是系统调度和分派的基本单位。 属于同一进程的线程,堆是共享的,栈是私有的。 属于同一进程的所有线程都具有相同的地址空间。
多进程
的优点:
多进程
与
多线程
的选择与区别
鱼还是熊掌:浅谈
多进程
多线程
的选择 关于
多进程
和
多线程
,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“
多进程
好还是
多线程
好?”、“Linux下用
多进程
还是
多线程
?”等等期望一劳永逸的问题,我只能说:没有最好,只有...
Linux/Unix社区
23,215
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章