Pit*_*kos 1 c performance multithreading client-server pthreads
我有一个服务器和一个客户端程序.服务器程序一直在运行,等待来自客户端的请求.对于服务器响应每个客户端,使用sleep()函数需要5秒.
在多线程版本上,如果我同时调用两个客户端,则每个客户端需要大约5秒才能获得响应.相同的测试给出5秒用于第一客户端和10在非多线程版本的第二客户端.显然有待预期.虽然有一些问题.处理器是单核 Athlon!
当cpu上的核心只有一个时,多线程服务器模块如何比非线程运行得更快?
因为你正在通过睡觉来模拟"工作".所以调度程序只需要让一个线程休眠5秒钟; 之后,它可以"服务"另一个线程.
简而言之,您没有使用CPU,所以从理论上讲,您可以通过这种方式为很多客户提供服务.现在,如果你要做一些CPU绑定5秒的事情,你会看到差异.
如果"工作"会发生同样的情况I/O.由于CPU实际上没有涉及,许多线程似乎同时工作.