Säikeiden suurin ongelma on, että ne voivat aiheuttaa paljon kilpailua resursseista, kuten suorittimen ajasta ja muistista. Tämä voi johtaa ongelmiin, jos kaksi säiettä yrittää käyttää samaa resurssia samanaikaisesti.ing_simple.py
#!/usr/bin/python tuonti ketjutuksen tuontiaika # Määritä funktio säikeelle def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadName, time.ctime(time.time()) ) # Luo kaksi säiettä seuraavasti yritä: thread.start_new_thread( print_time, ("Säie-1", 2, ) ) thread.start_new_thread( print_time, ( "Thread-2", 4, ) ) paitsi: tulosta "Virhe: säiettä ei voida aloittaa", kun taas 1: pass[/code] Tämä koodi luo kaksi säiettä. Ensimmäinen säie käyttää "print_time"-toimintoa 2 sekunnin välein ja toinen säie "print_time"-funktiota 4 sekunnin välein.
Objektien ketjuttaminen
Pythonissa voit ketjuttaa objekteja ketjutusmoduulin avulla. Tämä moduuli tarjoaa useita toimintoja, joita voit käyttää koodin säikeiden luomiseen ja hallintaan.
Voit aloittaa uuden säikeen Pythonissa käyttämällä threading.Thread()-funktiota. Tämä funktio ottaa ainoana argumenttinaan funktioobjektin, jonka haluat ajaa säietenä. Funktioobjektilla on oltava __name__-attribuutti, joka määrittää sen säikeen nimen, jossa tämä funktio suoritetaan.
Kun olet luonut säikeen Thread()-funktiolla, voit aloittaa sen kutsumalla Threading.start()-metodia. Tämä menetelmä käyttää ainoana argumenttinaan merkkijonoa, joka määrittää sen ohjelmatiedoston nimen, josta uuden säikeen tulee alkaa suorittaa.
Voit myös käyttää Threading.join()-metodia lopettaaksesi käynnissä olevan säikeen ja palauttaaksesi ohjauksen takaisin pääohjelman silmukkaan. Tämä menetelmä käyttää ainoana argumenttinaan merkkijonoa, joka määrittää sen ohjelmatiedoston nimen, jossa uuden säikeen tulee lopettaa suoritus.
Daemon Threads
Daemon-säikeet ovat säikeitä, jotka toimivat ohjelman taustalla. Niitä käytetään pitkäkestoisten tehtävien tai palveluiden käsittelemiseen häiritsemättä normaalia suorituskulkua.