我怎么感觉一般单进程单线程就能应付了 大家多线程难道是有的线程 /进程去处理 GUI ,数据库啥的了?
单线程或者单进程完全可以应对网络开发中多任务或多连接情况,并且效率很高(epoll异步处理方式),不过有些情况我们也应该考虑到:
1、大规模耗时数据处理时,是不是应该把它放到单独的线程或线程池中处理?如果不这样,是不是在用户响应体念上会相当差?
2、多核CPU。只开一个进程,是不是浪费了其它核的处理能力了呢?
3、一些必须完全独立的进程或是线程,比如守护进程。
7 回答5.3k 阅读
3 回答2k 阅读✓ 已解决
4 回答4k 阅读
2 回答3.9k 阅读✓ 已解决
2 回答5.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
多个进程或者线程无非就是要多占用点CPU的时间片,让程序运行效率更高点。不过进程间通信,线程上下文切换,同步等问题同样会对性能有些影响。服务器程序为了提高CPU的利用率,采用多进程或多线程的模型是比较常见的做法,而客户端程序一般来说的确单进程单线程就可以了。另外 @Hacken 的回答我不赞同,并不是说单进程和单线程的模型就无法同时服务多个客户端了,这里面主要要依赖IO复用技术。反过来讲,同时服务1000个客户端,难道要同时开1000个线程?显然不可能。