Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
557 views
in Technique[技术] by (71.8m points)

大家做linux C/C++网络编程时,啥时用到多线程或者多进程啊?

我怎么感觉一般单进程单线程就能应付了 大家多线程难道是有的线程 /进程去处理 GUI ,数据库啥的了?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...