Dobry wieczór, pracuje nad zadaniem domowym, którego treść prezentuje się następująco:
Napisz program w języku python, który stworzy 50 wątków. Każdy wątek posiada numer, który jest argumentem funkcji. Zadaniem każdego z wątków jest obliczenie potęgi liczby 2. Wykładnikiem potęgi jest numer wątku. Po wykonaniu obliczeń należy wypisać zawartość na ekran. Wątki muszą korzystać z blokady lock przy dostępie do terminala. Czas pracy wątku ustawić na 2 sekundy. Wątki mają dokonać obliczeń przed końcem wątku głównego.>
Moje rozwiązanie:
import _thread
import time
liczbawatkow = 50
def potega(nrWatku):
time.sleep(2)
mutex.acquire()
print('Watek nr:', nrWatku, 'potega 2: ',2**nrWatku)
mutex.release()
mutex = _thread.allocate_lock()
for i in range(liczbawatkow):
_thread.start_new_thread(potega, (i, ))
time.sleep(6)
print('Koniec.')
Czy moje rozwiązanie jest poprawne? W jaki sposób mogę wypisać wynik po kolei tj.: od wątku nr 0 do 49?