首页 > PHP资讯 > Python培训 > python 多线程之thread

python 多线程之thread

Python培训

python 多线程之thread

#! /usr/bin/env python# -*- coding:utf-8 -*-from threading import Threadimport subprocessfrom Queue import Queuenum_threads = 3ips = ['10.108.100.174', '119.75.218.77', '127.0.0.1']q = Queue()def pingit(i, queue):    while True:        ip = queue.get()        print "thread %s is pinging %s" % (i, ip)        ret = subprocess.call('ping -c 3 %s' % ip, shell=True, stdout=open('/dev/null','w'))#正常则返回0,异常则返回1;stdout=open('/dev/null','w')屏蔽ping具体细节信息        if ret != 0:            print "%s is down" % ip        queue.task_done()for i in xrange(num_threads):#xrang比range好    t = Thread(target=pingit, args=(i, q))    t.setDaemon(True)#设置了setDaemon则线程会随着主线程关闭而关闭,python中,主线程结束后,会默认等待子线程结束后,主线程才退出    t.start()for ip in ips:    q.put(ip)print "main thread is waiting..."q.join()print "Done..."


Python培训

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持13不支持0