Skip to content

Commit 31c1c7a

Browse files
committed
einfaches Beispiel für Threads
1 parent c312862 commit 31c1c7a

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

Level_8/threads.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env python3
2+
3+
from threading import Thread
4+
from time import sleep
5+
import string
6+
from sys import argv
7+
8+
"""
9+
Man kann einen Thread erstellen, indem man threading.Thread importiert
10+
und eine neue Klasse erstellt, die davon erbt und run überschreibt.
11+
12+
Man kann diesen Thread dann starten, indem man eine Instanz dieser Klasse anlegt
13+
und start() darauf aufruft.
14+
"""
15+
16+
class PrintThread(Thread):
17+
def __init__(self, string, wait=0.1):
18+
Thread.__init__(self)
19+
self.string = string
20+
self.wait = wait
21+
self.daemon = True # Soll dieser Thread beendet werden beim Programmende des Hauptthreads?
22+
23+
def run(self):
24+
while True:
25+
print(self.string, end="", flush=True)
26+
sleep(self.wait)
27+
28+
"""
29+
Alternativ kann man auch einfach eine bestimmte Methode
30+
in einem neuen Thread ausführen ohne eine neue Klasse zu schreiben:
31+
32+
def fun():
33+
pass
34+
35+
Thread(target=fun).start()
36+
"""
37+
38+
if len(argv) > 1:
39+
count = int(argv[1])
40+
else:
41+
count = 2
42+
43+
for letter in string.ascii_uppercase[0:count]:
44+
PrintThread(letter).start()
45+
46+
while True:
47+
sleep(100)

0 commit comments

Comments
 (0)