免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4246 | 回复: 13
打印 上一主题 下一主题

学习《unix网络编程》一书,感觉linux的多进程处理比多线程编程更加复杂?请教老师们 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-30 22:16 |只看该作者 |倒序浏览
在它的一些通讯程序的例子里,有很多采用多进程模式的,比如accept到一个连接,就fork一个进程来处理.....,而这些进程之间的通讯,相互关系涉及到很多api。
关键是,在windows下编程很少碰到这种模式(一般采用多线程编程了,比较习惯了),感觉很难适应,有些概念很难理解!,如果能不学这块就算了。但是,想请问:现在,unix下编程(比如通讯方面的)到底是多采用多进程模式还是多线程模式?如果多采用多进程模式,那还是得学习这种方式!
谢谢大家

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-12-31 10:16 |只看该作者
采用多进程和多线程的都有.
我一般用多进程。多线程在共享数据方面很方便.不同的需求采用不同的模式来设计.

论坛徽章:
0
3 [报告]
发表于 2005-12-31 14:34 |只看该作者
大侠,如果一个客户用一个进程来处理,系统容许多少个进程?
还有,书上常说的:”某某函数必须是线程安全的“,这句话的意思是:该函数只能在同一个线程内被调用?
还有,在linux下,我的多线程往往在ps命令下显示成了多个进程,有时候又不是,这个问题怎样解决?

论坛徽章:
0
4 [报告]
发表于 2006-01-04 15:40 |只看该作者
1.Linux允许的最大进程数可以通过 ulimit -u来查看
2.ps中显示的都可以看成是线程的信息。其中每一项是一个线程。
3.进程和线程的区别在于进程的地址空间是独立的,而线程是共享的
比如全局变量是可以被多个线程共享的,而进程则不能。

论坛徽章:
0
5 [报告]
发表于 2006-01-05 11:01 |只看该作者
linux的线程机制还不够完善,使用线程不见得比进程能优化多少。并且线程的控制是相当难度的,所以很多大牛都推荐使用进程机制。

    线程安全,是说:资源已经被操作系统识别为临界资源,当资源繁忙时,如果其他线程来访问资源,可能会处于阻塞状态。

    进程与线程的区别,从理论上来讲,进程是占有资源的线程(数据段,代码段),而线程只是一个执行绪(台湾翻译thread就是绪,这个子棉意思更好理解一些)握有栈内存。

论坛徽章:
0
6 [报告]
发表于 2006-01-05 15:45 |只看该作者
There're currently 2 different implementations of threading support in Linux: LinuxThreads and NPTL. They differ in quite a few places, including the output of "ps".

论坛徽章:
0
7 [报告]
发表于 2006-01-05 19:28 |只看该作者
我怎么感觉恰恰相反呢?

论坛徽章:
0
8 [报告]
发表于 2006-01-07 13:00 |只看该作者
Linux的线程是在内核外实现的,也是使用的内核提供的创建进程的接口do_fork(). 所以如jingyueid 所说, 使用多线程并不必使用多进程优化多少!

论坛徽章:
0
9 [报告]
发表于 2006-01-09 11:29 |只看该作者
很多情况下使用多进程比使用多线程更可靠,系统的部署也更简单。
在多进程和多线程之间,性能的主要差距在于执行fork的过程,这在现有的软、硬件条件下基本上可以忽略。考虑到使用多线程后增加的系统复杂度和程序的可靠性,多进程模式的这点开销是完全可以接受的。

论坛徽章:
0
10 [报告]
发表于 2006-01-11 21:38 |只看该作者

我到觉得多线程要好一些!

虽然不能绝对的做定论,不过,多进程可以做的,线程都可以胜任(据本人拙见)。

线程的优势在于任务调度切换时的开销,而不在于相比fork的开销。

个人觉得线程简单也灵活些。尤其是处理一些需要同步较少的东东。

多进程协作一般是为了同步不同的应用系统间的,或实现不同的功能系统间的,或根本就不是同一用户掌握或运行的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP