如何将两个整数与Twisted一起添加?

我的程序中有两个整数。 我们称他们为“ a ”和“ b ”。 我想将它们加在一起,并得到另一个整数。 这些是普通的Python int对象。 我在想; 我如何将它们与Twisted一起添加? 有没有特殊的performAsynchronousAddition函数? 我需要Deferred吗? 那么反应堆呢? 涉及反应堆?

好的,要清楚。

Twisted并没有做任何关于cpu绑定的任务,并有很好的理由。 通过对子任务进行重新sorting,没有办法使计算绑定的工作变得更快; 你唯一能做的就是增加更多的计算资源。 即使这样做也不会在python中实现,因为它的实现很微妙。

Twisted提供特殊的语义和事件循环处理,以防程序在其控制之外“ 卡住 ”等待外部事件; 通常是在另一台机器上运行的进程,并通过networking连接与您的双绞线进程进行通信。 既然你会等待 ,扭曲给你一个机制,让更多的事情在此期间完成。 也就是说,twisted为I / O Bound任务提供并发性

tl; dr:twisted是networking代码。 其他的东西只是普通的python。

这个怎么样:

 c = a + b 

这应该工作,并不需要asynchronous完成(这是非常快)。

好的问题,Twisted(或Python)应该有办法至less产生“a + b”到几个核心(在我的8核心i7上)。

不幸的是,Python GIL阻止了这种情况的发生,这意味着你不得不等待,不仅仅是CPU限制任务,而是一个内核完成这个任务,而另外七个内核什么都不做。

注意:也许更好的例子是“a()+ b()”,甚至“fact(sqrt(a()** b())”等,但重要的事实是上述操作将locking一个核心, GIL几乎可以阻止Python在这个操作过程中做任何事情,这可能是几个毫秒…