|
import os
import time
import subprocess
from concurrent.futures import ThreadPoolExecutor
def ping_call(num):
fnull = open(os.devnull, 'w')
ipaddr = 'ping 192.168.11.' + str(num)
result = subprocess.call(ipaddr + ' -n 2', shell=True, stdout=fnull, stderr=fnull)
current_time = time.strftime('%Y%m%d-%H:%M:%S', time.localtime())
if result:
print('时间:{} ip地址:{} ping fall'.format(current_time, ipaddr))
else:
print('时间:{} ip地址:{} ping ok'.format(current_time, ipaddr))
fnull.close()
if __name__ == '__main__':
start_time = time.time()
thread_pool = ThreadPoolExecutor(20)
ret_lst = []
for i in range(1, 256):
ret = thread_pool.submit(ping_call, i)
ret_lst.append(ret)
thread_pool.shutdown()
for ret in ret_lst:
ret.result()
print('线程池(20)异步-->耗时{:.2f}'.format(time.time() - start_time)) |
|
|