如何将asyncio代码与阻塞代码混合使用?

时间:2015-07-11 00:38:09

标签: python multithreading python-3.x asynchronous python-asyncio

如何混合使用主线程外部运行的代码/语句/函数以及在主线程上严格运行的代码。

在移动世界中,我们有像rxjava,asynctask,runnables,rxswift这样的工具,只需要放入在后台运行的行,而不是打扰主代码的流畅性。

那么如何利用asyncio lib并简单地将非阻塞代码与阻塞代码混合在一起?

   def mumboJumboCode():
        regularStuff = doSomeRegularStuff()
        illGetItLater = sendSomeStuffToAWebsocketInTheBackground(regularStuff)
        moreRegularStuff = doSomeMoreRegularStuff()
        iDontCareWhatItReturns = sendAMessageOverTheWire(illGetItLater)
        if (moreRegularStuff => regularStuff):
              triggerALambdaSomewhereInTheCloud(moreRegularStuff)

1 个答案:

答案 0 :(得分:0)

您可以随时在异步模式下模拟阻止代码,但不是相反。

因此,如果您以异步模式对系统进行编程,则可以在事件处理程序中设置一个标志,并等待该标志在轮询循环中更改,从而有效地将模式更改为同步模式。如果你想要异步,你可以只改变处理程序的行为。