From 3871bb8d99eda90021d2fd195114774e1ab4d499 Mon Sep 17 00:00:00 2001 From: Raspithek Date: Sun, 2 Apr 2023 14:14:53 +0200 Subject: [PATCH] =?UTF-8?q?Aufr=C3=A4umarbeiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 2 ++ multithread.py | 46 ----------------------------------------- race_condition_async.py | 45 ---------------------------------------- 3 files changed, 2 insertions(+), 91 deletions(-) delete mode 100644 multithread.py delete mode 100644 race_condition_async.py diff --git a/Readme.md b/Readme.md index 9807ab7..745fb6d 100644 --- a/Readme.md +++ b/Readme.md @@ -16,4 +16,6 @@ CC-BY-SA Olli Graf | 9 | Typkonvertierung| |10 | Dateien| |11 | Datum und Zeit| +|12 | Multithreading| +|12 | Netzwerk| diff --git a/multithread.py b/multithread.py deleted file mode 100644 index 91ca9ba..0000000 --- a/multithread.py +++ /dev/null @@ -1,46 +0,0 @@ -from timeit import default_timer as timer -import time -import threading - -def calc_square(numbers, verbose=False): - for n in range(1,numbers): - q= n*n - if verbose: - print(f'\n{n} ^ 2 = {q}') - time.sleep(0.1) - -def calc_cube(numbers,verbose=False): - for n in range(1,numbers): - k = n*n*n - if verbose: - print(f'\n{n} ^ 3 = {k}') - time.sleep(0.1) - -start = timer() - -thread_square = threading.Thread(target=calc_square, args=(100,True)) -thread_cube = threading.Thread(target=calc_cube, args=(100,True)) - -thread_cube.start() -thread_square.start() - -thread_cube.join() -thread_square.join() -ende = timer() -differenz_mit_print = ende - start -print(f'Zeit mit print():{differenz_mit_print}s') - -start = timer() - -thread_square = threading.Thread(target=calc_square, args=(100,False)) -thread_cube = threading.Thread(target=calc_cube, args=(100,False)) - -thread_cube.start() -thread_square.start() - -thread_cube.join() -thread_square.join() - -ende = timer() -differenz_ohne_print = ende - start -print(f'Zeit ohne print():{differenz_ohne_print}s') diff --git a/race_condition_async.py b/race_condition_async.py deleted file mode 100644 index 881e40a..0000000 --- a/race_condition_async.py +++ /dev/null @@ -1,45 +0,0 @@ -import asyncio -import random -import time - -gesamtwert = 0 -message = '' - - -async def calculate_sum(lock, thread_nummer): - global gesamtwert - global message - - for i in range(100 + thread_nummer): - async with lock: - zwischen = gesamtwert -#Zufällige Wartezeit zwischen 0,1s und 0,5s - wartezeit = random.randint(1,5+thread_nummer) - time.sleep(0.1 * wartezeit) - - zwischen += 1 - - async with lock: - gesamtwert = zwischen - - message = f'Thread {thread_nummer} fertig' - print(f'Thread + {thread_nummer} abgearbeitet.') - -async def main(): - -#async Lock erzeugen - lock = asyncio.Lock() - -# drei Threads starten, um die Summe der Zahlen zu berechnen - - threads = [asyncio.create_task(calculate_sum(lock, _+1)) for _ in range(3)] - -#Warten auf alle Threads - await asyncio.gather(*threads) - - print(f'gesamtwert={gesamtwert}') - print(f'message={message}') - -if __name__ == '__main__': - asyncio.run(main()) -