Django/Python:如何在Python中启动新进程?
在客户上传图片后,我想把这张图片调整成8种不同的大小,然后把它们上传到S3(一个云存储服务)并保存到文件系统里。显然,这个过程可能会花费一些时间(几秒钟),所以我想用“多线程”的方式来处理这个问题(我这样说是因为我并不在乎它是否真的使用了多线程,或者是其他什么功能)。我了解到,由于Python中的全局解释器锁(GIL),在处理这种事情时,使用多线程并不太有效,因为它们在同一个进程中运行,结果和在代码的正常流程中执行是一样的(与多线程无关)。那么,有没有其他更好的方法可以在Python中为这种任务开启一个新进程呢?
1 个回答
2
如果你想要调用一个外部程序,可以使用 subprocess
模块。
另一方面,如果你想绕过全局解释器锁(GIL),并运行一些 Python 任务,可以使用 multiprocessing
模块。这个模块的使用方式和 threading
包很相似,但它使用的是子进程,这样就不受 GIL 的限制了。