1
回答
如何使用python的multiprocess多进程
开发十年,就只剩下这套Java开发体系了   

多进程这东西花费的是cpu的资源。所以我都不敢尝试开的太大(不像线程这种)一开大了电脑就挂了。。下面我贴个自己写的使用多进程探测Tcp端口是否开放的源码

#!/usr/bin/env python
# encoding: utf-8

from multiprocessing.dummy import Pool as ThreadPool
import socket
import time

def scan(port):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.settimeout(0.1)
        ip='220.181.136.241'
        #print port
        try:
            s.connect((ip,port))
            #print port
        except:
            pass
        else:
            print 'port is %s',port
        s.close()
port=range(10000)
pool=ThreadPool(60)
start=time.time()
results=pool.map(scan,port)
#print results
pool.close()
pool.join()
print time.time()-start



我的电脑是4核心的,现在开了80个进程,扫完10000个端口大概13秒,尝试过开到100个的,看了下cpu到100%了。。速度也没提升多少了。大概12.9秒。想请教下前辈们一般开多少进程

<无标签>
举报
firebroo
发帖于5年前 1回/2K+阅
顶部