Heim > Backend-Entwicklung > Python-Tutorial > Python-Multithreading-Thread

Python-Multithreading-Thread

高洛峰
Freigeben: 2016-10-19 11:40:15
Original
1322 Leute haben es durchsucht

Python-Multithreading

#! /usr/bin/env python
# -*- coding:utf-8 -*-
from threading import Thread
import subprocess
from Queue import Queue
num_threads = 3
ips = ['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..."
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage