Maison > développement back-end > Tutoriel Python > python的多线程示例

python的多线程示例

大家讲道理
Libérer: 2016-11-09 10:58:05
original
1294 Les gens l'ont consulté

#!/usr/bin/env python
 
 
import subprocess
from threading import Thread
from Queue import Queue
 
num_threads = 3
ips = ['127.0.0.1', '10.103.13.156','10.103.13.145']
q = Queue()
 
 
def pingme(i, queue):
    while True:
        ip = queue.get()
        print 'Thread %s pinging %s ' % (i, ip)
        ret = subprocess.call('ping -c 1 %s' % ip, shell=True, stdout=open('/dev/null'), stderr=subprocess.STDOUT)
        if ret == 0:
            print '%s is alive!' % ip
        else:
            print '%s is down...' % ip
 
# start threads
for i in xrange(num_threads):
    t = Thread(target=pingme, args=(i, q))
    t.setDaemon(True)
    t.start()
 
for ip in ips:
    q.put(ip)
 
print 'main thread waiting...'
q.join()
print 'Done..'
 
if __name__ == '__main__':
    pass
Copier après la connexion


输出内容:

/usr/bin/python2.7 /home/wuguowei/PycharmProjects/xplan_script/test_process/my_sub_process.py
Thread 1 pinging 127.0.0.1
main thread waiting...Thread 0 pinging 10.103.13.156
  
Thread 2 pinging 10.103.13.145
127.0.0.1 is alive!
10.103.13.156 is alive!
10.103.13.145 is alive!
Copier après la connexion


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal