【发布时间】:2012-02-06 21:51:54
【问题描述】:
我正在尝试评估各种语言以构建小型高吞吐量应用程序服务器。它需要做一些小事情,比如获取请求、从运行缓存应用程序(memcached、redis)的单独服务器读取数据,以及发回 5 到 10 行的 XML 或 JSON。非常高的吞吐量,至少在生产中每秒 1000 个。我在 Nginx 上有这个 - PHP 和 memcached 需要 5+ 毫秒才能发回所有需要的数据,所以有一些网络 IO 会阻塞。
我正在查看 Python 的 BaseHTTPServer 类。我不是 python 大师,但我需要知道它在幕后是如何工作的。如果您阅读此页面 -
http://docs.python.org/library/socketserver.html
它说“要构建异步处理程序,请使用 ThreadingMixIn 和 ForkingMixIn 类。”
它真的是异步的还是每个客户端启动一个线程。如果它在每个客户端模型的一个线程上 - 这些是操作系统级别的线程吗?如果我坚持每个客户端模型一个线程,如果我给它高 RAM、8 核亚马逊实例,Python 的 GC 是否会足够快地清除东西。
【问题讨论】:
标签: python multithreading web-services webserver threadpool