相关疑难解决方法(0)

扭曲:使代码无阻塞

我对如何在python/twisted中编写异步代码感到有点困惑.假设(为了论证)我向世界公开一个函数,它接受一个数字并返回True/False,如果它是素数/非素数,所以它看起来像这样模糊:


def IsPrime(numberin):
    for n in range(2,numberin):
        if numberin % n == 0: return(False)
    return(True)
Run Code Online (Sandbox Code Playgroud)

(只是为了说明).

现在假设有一个网络服务器需要根据提交的值调用IsPrime.这需要很长时间才能完成numberin.

如果同时另一个用户请求一个小数的素数,有没有办法使用reactor/deferreds架构异步运行两个函数调用,以便在长计算结果之前返回短计算结果?

我知道如果IsPrime功能来自我的网络服务器将执行延迟的getPage的其他一些网络服务器,该怎么做呢,但如果它只是一个本地功能呢?

即,可以在两次调用IsPrime之间以某种方式进行Twisted时间共享,还是需要显式调用新线程?

或者,IsPrime循环是否需要分成一系列较小的循环,以便控制可以快速传递回反应堆?

或者是其他东西?

python asynchronous twisted blocking

19
推荐指数
1
解决办法
6457
查看次数

标签 统计

asynchronous ×1

blocking ×1

python ×1

twisted ×1