大家做linux C/C++网络编程时,啥时用到多线程或者多进程啊?
黄舟
黄舟 2017-04-17 16:46:54
[Linux讨论组]
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(6)
伊谢尔伦

多个进程或者线程无非就是要多占用点CPU的时间片,让程序运行效率更高点。不过进程间通信,线程上下文切换,同步等问题同样会对性能有些影响。服务器程序为了提高CPU的利用率,采用多进程或多线程的模型是比较常见的做法,而客户端程序一般来说的确单进程单线程就可以了。另外 @Hacken 的回答我不赞同,并不是说单进程和单线程的模型就无法同时服务多个客户端了,这里面主要要依赖IO复用技术。反过来讲,同时服务1000个客户端,难道要同时开1000个线程?显然不可能。

大家讲道理

这个主要根据需求来吧。
如果你做分布式,或者高负载的应用的时候,多线程/多进程就很需要了。

高洛峰

假设你用单线程实现一个文件传输程序.如果一个客户端连接到你下载一个文件,这个文件很大10G要下载10分钟。这个时候其他客户端希望来下载一个100k的图片,怎么办?先等待10分钟?

怪我咯

对于一些流程上没有先后顺序的处理过程,使用多进程线程可以优化流程设计

怪我咯

单线程或者单进程完全可以应对网络开发中多任务或多连接情况,并且效率很高(epoll异步处理方式),不过有些情况我们也应该考虑到:

1、大规模耗时数据处理时,是不是应该把它放到单独的线程或线程池中处理?如果不这样,是不是在用户响应体念上会相当差?

2、多核CPU。只开一个进程,是不是浪费了其它核的处理能力了呢?

3、一些必须完全独立的进程或是线程,比如守护进程。

PHP中文网

市面 96%的人写不好多线程异步系统,写出来也是问题多多,所以我一般选择多进程同步模式,为的是不加班,按时交付。特殊情况再讨论特殊的要求

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号