Django / Python:如何在Python中启动新进程?

时间:2010-01-20 19:21:39

标签: python django multithreading

客户上传图像后,我想将图像重新调整为8种不同的尺寸,然后将它们发送到S3并将其保存到文件系统。显然这可能需要很长时间(秒),我希望以“多线程”的方式进行(我引用它,因为我不在乎它是否实际上是多线程的,或者它是否是其他功能)。我的理解是,由于Python中的GIL,你不能成功地将多线程用于这样的事情,因为它使用相同的过程,因此与在代码的正常流程中执行的操作完全相同(与多线程相比)。是否有其他更好的方法在Python中为这类任务打开一个新进程?

1 个答案:

答案 0 :(得分:2)

如果要调用外部进程,请使用subprocess模块。

另一方面,如果您想要支持GIL并旋转一些Python任务,请使用multiprocessing模块。它提供的接口非常类似threading包,但使用子进程,因此您不受GIL约束的约束。