【发布时间】:2012-10-28 21:01:11
【问题描述】:
我正在编写一个 NAT 的实现。我的算法如下:
- 数据包进来
- 如果是外部的,则检查查找表,如果是内部的,则添加到查找表中
- 交换源地址并在途中发送数据包
我一直在阅读有关 Twisted 的信息。我很好奇 Twisted 是否利用了多核 CPU?假设系统有数以千计的用户,一个数据包紧随其后。使用twisted,查找表操作可以在每个内核上同时进行。我听说 GIL 无论如何都不允许这样做。也许我可以从多处理中受益>
Nginix 是异步的,可以愉快地同时为成千上万的用户提供服务。
【问题讨论】:
-
GIL 在 io 绑定操作期间被释放,所以应该不是问题。
-
那么线程会比异步更快吗?
-
如果真的是IO-bound,线程不会比异步快;一个线程等待要做的事情就像两个(或十个或......)一样容易
标签: python multithreading asynchronous twisted