有哪些库在Python中提供了更高级别的并发接口?我并不希望一定要使用多核-如果GIL序列化了所有的内容,那对我来说没问题。我只想要一个更平滑/更高级别的并发接口。你知道吗
我的应用程序正在编写我们软件的测试,有时我想,比方说,运行几个模拟用户,以及对后端进行更改的代码,所有这些都是并行的。如果我能这样做就太好了:
setup_front_end()
setup_back_end()
parallel:
while some_condition():
os.system('wget http://...')
sleep(1)
for x in xrange(10):
os.system('top >> top.log')
sleep(1)
for x in xrange(100):
mess_with_backend()
上面代码中的想法是我们启动3个线程,第一个线程运行:
while some_condition():
os.system('wget http://...')
sleep(1)
第二个运行第二个循环,第三个运行第三个循环。你知道吗
我知道事情不会那么简单,但是有没有什么东西可以减轻编写函数、旋转线程、连接线程等工作的负担呢?你知道吗
如果您只想隐藏创建线程和设置参数的复杂性,请创建一个简单的decorator并将其用于函数:
你知道吗异步.py地址:
这只是围绕函数的一个非常简单的包装器,它创建一个新线程并在线程中执行函数。如果需要,可以很容易地将其调整为使用进程而不是线程。你知道吗
你知道吗主.py地址:
只要用
@async
修饰函数,就可以异步调用它。你知道吗在您的例子中:只需将循环包装在一个函数中,并用
@async
装饰它们。你知道吗有关完整功能的异步修饰符,请参见:http://wiki.python.org/moin/PythonDecoratorLibrary#Asynchronous_Call
除了} 模块(对于py2,它是一个backport)。你知道吗
threading
模块之外,您还应该查看^{它提供了现成的线程/进程池实现,并允许您编写高效的并发代码。因为它为线程和多处理提供了统一的API,所以如果需要的话,它允许您在两者之间轻松切换。你知道吗
相关问题 更多 >
编程相关推荐