
1 gouchaoer Jan 2, 2017 via Android 第一,这是多进程 第二,这种情况异步 io 直接单进程完成,效率不知道高哪里去了 |
2 Allianzcortex Jan 2, 2017 via iPhone 你这是多进程啊,应该用 dummy 的。 ``` for p in jobs; p.start() q.join() for p in jobs: p.join() ``` 类似这样的 |
3 inksong OP @Allianzcortex 大神紧急求助!小弟对 python 不太熟求救,实在不太懂如何写,能再说的详细一点吗?十分感谢! |
5 Allianzcortex Jan 2, 2017 via iPhone 其实我想说这种情况用 threadpoolexecutor + future 简直再合适不过了,写过一篇半成品 blog http://allianzcortex.me/2014/06/22/python-multiprocess/ 不知道有没有帮助。 @gouchaoer 说的是 asyncio ?其实没怎么用过(噗。。) |
6 inksong OP @Allianzcortex 额我只想用一个 JoinableQueue 来解决问题,我这个代码现在唯一的问题就是 jobs = [multiprocessing.Process(target=worker, args=(q,)) for i in xrange(100)] 这句里 q 的赋值我没太搞懂,我想把 iplist 赋值进去好让它一个一个处理,对 python 语法不熟。。。求点拨! |
8 rogerchen Jan 2, 2017 这显然是 IO bound 的情况, 1G 带宽打满也用不了一个核。。。 epoll kqueue 是正解,开几千个线程也马马虎虎吧,起那么多进程就有点浪费了。 |
10 hoocok Jan 4, 2017 V2Ex 不支持代码缩进的么??????以后直接贴代码图吧?还是 V2EX 不支持 Markdown 之类? |