Linux的并发处理
C/S结构,用的Socket实现。
问题:
在服务器端,要求能处理大规模响应,怎么实现?
谢谢指教!
------解决方案--------------------一般意义上的大规模,多几个CPU,多点内存,搞一个线程池,应该就差不多了。还不行就弄几台机器搞一个集群,来一个负载均衡之类的。
如果要搞成新浪雅虎之类的效果,那可就是动辄成百上千台服务器,具体怎么弄就不清楚了。
------解决方案--------------------多线程就可以咯
一个请求开辟一个新的线程去处理
根据自己servcer的性能设置最大线程数……
------解决方案--------------------所谓大规模,就是在短时间段内处理的任务量相当多,多进程占用太多空间,多线程可以看作是多进程的特例,占用空间少可以用多线程来处理。
------解决方案--------------------长连接最好是每个客户端一个子进程,这样服务最稳定
------解决方案--------------------短连接频繁用epoll
------解决方案--------------------不要听他们的。不要开太多线程,客户多的话不要超过5个,线程太多不一定快
------解决方案--------------------线程多了没用, 关键是处理速度应该够快, 几个线程够用了.
并发就原子操作, 没什么好说的.
关键是内存回收机制要好.
------解决方案--------------------不要听他们的。不要开太多线程,客户多的话不要超过5个,线程太多不一定快
======================================================================
有时候用线程也不是为了快.楼主要求处理是大并发.
可以使用线程池,如果线程池不能满足要求的时候再考虑其他的方法.
------解决方案--------------------多进程,每个连接一个子进程。同步可以用信号量。