import threading, time # Vytvoříme bariéru, určíme kolik vláken k ní musí dojít, než je propustí. barrier = threading.Barrier(3) # Vlákno vykonává práci a následně čeká než tu stejnou práci nedokončí ostatní vlákna. # Pak vlákna pokračují vykonáváním další práce. def thread_function(thread_id): print("Vlákno {} vykonává 1. fázi".format(thread_id)) time.sleep(2) print("Vlákno {} čeká u bariéry.".format(thread_id)) barrier.wait() print("Vlákno {} vykonává 2. fázi".format(thread_id)) time.sleep(2) def thread_run(): threads = [] for i in range(3): thread = threading.Thread(target=thread_function, args=(i,)) threads.append(thread) thread.start() for thread in threads: thread.join() print("Všechna vlákna dokončila práci.") thread_run()```