Python多进程为什么执行起来还是单进程

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=4)
    for i in range (10):
        ip = '192.168.1.' + str(i)
        print(ip)
        time.sleep(5)

我需要例如这样工作:

print

192.168.1.0

192.168.1.1

192.168.1.2

192.168.1.3

sleep 5

192.168.1.4

192.168.1.5

192.168.1.6

192.168.1.7

 

但是实际执行结果为每输出1个IP,就会休眠5秒钟

我需要历遍一个清单,对每一条执行相同的操作,请问该怎么实现呢?

 

需要使用pool.apply()或者pool.apply_async()维持进程啊

import time
import multiprocessing

def do(i,ip):
    name = multiprocessing.current_process().name
    print(name)
    print(i,ip)
    time.sleep(3)


if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=4)
    for i in range (10):
        ip = '192.168.1.' + str(i)
        pool.apply_async(do, (i,ip))
    pool.close()
    pool.join()
#out
#SpawnPoolWorker-1
0 192.168.1.0
SpawnPoolWorker-2
1 192.168.1.1
SpawnPoolWorker-3
2 192.168.1.2
SpawnPoolWorker-4
3 192.168.1.3
SpawnPoolWorker-1
4 192.168.1.4
SpawnPoolWorker-2
5 192.168.1.5
SpawnPoolWorker-3
6 192.168.1.6
SpawnPoolWorker-4
7 192.168.1.7
SpawnPoolWorker-1
8 192.168.1.8
SpawnPoolWorker-2
9 192.168.1.9

进程已结束,退出代码为 0