非阻塞python进程或线程

cor*_*sen 17 python

我有一个简单的应用程序,侦听套接字连接.每当某些数据块进入时,就会使用该数据调用回调处理程序.在该回调中,我想将我的数据发送到另一个进程或线程,因为它可能需要很长时间才能处理.我最初在回调函数中运行代码,但它阻止!!

剥离新任务的正确方法是什么?

ste*_*fan 27

threading是通常用于基于资源的多线程的线程库.在多进程库是另一个库,而是更多地用于运行并行密集计算任务; 在您的情况下,线程通常是推荐的库.

import threading, time
def my_threaded_func(arg, arg2):
    print "Running thread! Args:", (arg, arg2)
    time.sleep(10)
    print "Done!"

thread = threading.Thread(target=my_threaded_func, args=("I'ma", "thread"))
thread.start()
print "Spun off thread"
Run Code Online (Sandbox Code Playgroud)


nmi*_*els 5

多处理模块具有工作池.如果您不需要工作池,则可以使用Process与主程序并行运行.