Python - 我应该使用线程或进程进行网络活动吗?

时间:2017-07-18 12:22:48

标签: python multithreading multiprocessing

我正在编写一个python脚本,当按下键盘上的回车键时,该脚本会将文件上传到远程FTP服务器。

由于可以随机按下回车键,因此可以同时生成多个线程/进程。

现在我应该使用线程或多处理来执行上传吗?哪个更好,为什么?

1 个答案:

答案 0 :(得分:1)

因此,对于真正的并行工作,您需要多处理,因为线程只在少数情况下(如IO)提供优势。

正如已经指出的那样,对于你的IO工作线程应该没问题,尽管你应该研究多处理,因为根据我的经验,它也不难实现。

multiprocessing获取返回值比从threads

获取返回值更容易

如果您想知道为什么threads对于大多数用例而言较慢,您应该阅读:https://jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/

编辑:还要记住,对于简单任务threadsmultiprocessing实际上会增加运行时间,因为从multiprocessing分配线程/进程和更高内存使用的开销是由于没有共享内存非常重要。