2017-07-18 45 views
2

我正在写一个python脚本,当在键盘上按下回车键时,它将上传文件到远程FTP服务器。Python - 我应该使用线程还是进程进行网络活动?

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

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

+2

由于它是网络(IO问题)线程应该足够了。 –

+0

性能会有差异吗? –

+1

取决于你的CPU工作,但你很可能不会看到差异,而且新进程必须分配更多的内存,所以你最好使用线程来完成这个任务。 –

回答

1

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

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

而且它的方式更容易从multiprocessing得到一个返回值比threads

如果你想知道为什么threads慢于大多数使用情况下,你应该阅读:https://jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/

编辑:也请请注意,对于简单任务threadsmultiprocessing实际上增加了运行时间,因为由于没有共享内存,分配线程/进程的开销和来自multiprocessing的更高内存使用量非常重要。

相关问题