Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Multithreading in Python

So implementieren Sie Multithreading in Python

高洛峰
高洛峰Original
2017-03-02 16:13:221432Durchsuche

Derzeit bietet Python mehrere Multithreading-Implementierungsmethoden: Thread, Threading und Multithreading. Das Thread-Modul ist relativ niedrig, und das Threading-Modul umschließt Threads und kann bequemer verwendet werden.

Vor Version 2.7 war die Unterstützung von Python für Threads nicht vollständig genug und konnte die Vorteile von Multi-Core-CPUs nicht nutzen. In Version 2.7 von Python wurde jedoch über eine Verbesserung nachgedacht, und das Multithreading-Modul ist erschienen. Das Threading-Modul objektiviert hauptsächlich einige Thread-Operationen und erstellt Thread-Klassen. Im Allgemeinen gibt es zwei Modi für die Verwendung von Threads:

A erstellt eine Funktion, die vom Thread ausgeführt werden soll, übergibt diese Funktion an das Thread-Objekt und lässt sie ausführen
B-Vererbung Thread-Klasse, erstellen Sie eine neue Klasse und schreiben Sie den auszuführenden Code in die Ausführungsfunktion.

In diesem Artikel werden zwei Implementierungsmethoden vorgestellt.
Die erste Methode besteht darin, eine Funktion zu erstellen und sie an das Thread-Objekt
t.py-Skriptinhalt

import threading,time
from time import sleep, ctime
def now() :
  return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )
def test(nloop, nsec):
  print 'start loop', nloop, 'at:', now()
sleep(nsec)
  print 'loop', nloop, 'done at:', now()
def main():
  print 'starting at:',now()
  threadpool=[]
for i in xrange(10):
    th = threading.Thread(target= test,args= (i,2))
    threadpool.append(th)
for th in threadpool:
    th.start()
for th in threadpool :
    threading.Thread.join( th )
  print 'all Done at:', now()
if __name__ == '__main__':
    main()
zu übergeben

thclass.py-Skriptinhalt:

import threading ,time
from time import sleep, ctime
def now() :
  return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )
class myThread (threading.Thread) :
"""docstring for myThread"""
   def __init__(self, nloop, nsec) :
     super(myThread, self).__init__()
     self.nloop = nloop
     self.nsec = nsec
   def run(self):
     print 'start loop', self.nloop, 'at:', ctime()
sleep(self.nsec)
     print 'loop', self.nloop, 'done at:', ctime()
def main():
   thpool=[]
   print 'starting at:',now()
for i in xrange(10):
     thpool.append(myThread(i,2))
for th in thpool:
     th.start()
for th in thpool:
     th.join()
   print 'all Done at:', now()
if __name__ == '__main__':
    main()

Das Obige Ist der gesamte Inhalt dieses Artikels? Ich hoffe, er wird für alle hilfreich sein, die Python-Programmierung lernen.

Weitere Artikel zur Implementierung von Multithreading in Python finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
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