pythonthread

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

注意queue, setDaemon。

#! /usr/bin/env python

# -*- coding:utf-8 -*-

from threading import Thread

import subPRocess

from Queue import Queue

num_threads=3ips= ['10.108.100.174','119.75.218.77','127.0.0.1']

q=Queue()

def pingit(i, queue):whileTrue:

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具体细节信息ifret !=0:

print"%s is down"%ip

queue.task_done()foriinxrange(num_threads):#xrang比range好

t= Thread(target=pingit, args=(i, q))

t.setDaemon(True)#设置了setDaemon则线程会随着主线程关闭而关闭,python中,主线程结束后,会默认等待子线程结束后,主线程才退出

t.start()foripinips:

q.put(ip)

print"main thread is waiting..."q.join()

print"Done..."

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航