A programban két külön szálat indítunk el, amelyek párhuzamosan futnak, és "versenyeznek" egymással. A time.sleep segítségével szimuláljuk, hogy a szálak éppen valamilyen feladatot (például adatbázis-lekérdezést vagy fájlletöltést) végeznek.
--------------
import threading
import time
import random
# A függvény, amit a szálak párhuzamosan fognak futtatni
def munkas_szal(nev):
print(f"🚀 Szál elindult: {nev}")
for i in range(1, 4):
# Véletlenszerű várakozás, hogy látszódjon a szálak közötti váltás
idopont = random.uniform(0.5, 1.5)
time.sleep(idopont)
print(f"🔄 {nev} éppen a(z) {i}. részfeladatot végzi... ({idopont:.2f} mp)")
print(f"✅ Szál befejeződött: {nev}")
# Főprogram
if __name__ == "__main__":
print("--- FŐPROGRAM START ---")
# 1. Szálak létrehozása (megadjuk a függvényt és az argumentumokat)
szal1 = threading.Thread(target=munkas_szal, args=("A-Szál",))
szal2 = threading.Thread(target=munkas_szal, args=("B-Szál",))
# 2. Szálak elindítása (itt válnak ketté a végrehajtási utak)
szal1.start()
szal2.start()
print("📢 A főprogram elindította a szálakat, és vár rájuk...")
# 3. Bevárjuk, hogy mindkét szál befejezze a munkát (join)
szal1.join()
szal2.join()
print("--- FŐPROGRAM VÉGE (Minden szál lefutott) ---")
--------------
--- FŐPROGRAM START --- 🚀 Szál elindult: A-Szál 🚀 Szál elindult: B-Szál 📢 A főprogram elindította a szálakat, és vár rájuk... 🔄 A-Szál éppen a(z) 1. részfeladatot végzi... (0.59 mp) 🔄 B-Szál éppen a(z) 1. részfeladatot végzi... (0.74 mp) 🔄 A-Szál éppen a(z) 2. részfeladatot végzi... (0.66 mp) 🔄 B-Szál éppen a(z) 2. részfeladatot végzi... (1.17 mp) 🔄 A-Szál éppen a(z) 3. részfeladatot végzi... (1.35 mp) ✅ Szál befejeződött: A-Szál 🔄 B-Szál éppen a(z) 3. részfeladatot végzi... (0.90 mp) ✅ Szál befejeződött: B-Szál --- FŐPROGRAM VÉGE (Minden szál lefutott) ---
Nincsenek megjegyzések:
Megjegyzés küldése