Python-异步调用函数()?

Python-异步调用函数()?,python,asynchronous,Python,Asynchronous,异步调用函数的最短方法是什么 用户应始终能够输入新值; 但是每个action()都必须排队 def action(i): #takes a long time to be achieve while True: i = raw_input("Input your value: ") action(i) 使用多处理模块: from multiprocessing import Pool def action(i): #takes a long time to be

异步调用函数的最短方法是什么

用户应始终能够输入新值; 但是每个action()都必须排队

def action(i):
   #takes a long time to be achieve

while True:
    i = raw_input("Input your value: ")
    action(i)

使用多处理模块:

from multiprocessing import Pool

def action(i):
   #takes a long time to be achieve

worker_pool = Pool(processes=1)
while True:
    i = raw_input("Input your value: ")
    result = worker_pool.apply_async(action, [i], callback)
你也可以用芹菜做背景任务:

@celery_app.task(bind=True,max_retries=None)
def action(i):
   #takes a long time to be achieve

while True:
    i = raw_input("Input your value: ")
    action.apply_async(args=[i])

这取决于您考虑的是哪种异步编程模型。在这种情况下可能是线程化,但也有许多其他的可能性,哪一种最合适取决于您真正需要的。@deceze最短/最容易理解/最快编码。这取决于这些函数的功能。您是否需要担心共享资源和死锁?关于管理您计算机的资源,即只启动CPU可以并行处理的线程数,然后将其他功能排队?没有一个简单的答案。好的,更准确地说:用户应该总是能够输入一个新值;但是每个action()都可以排队。