import threading import time import random m = threading.Lock() def draw(txt): for i in range(10): t = random.randrange(100, 1000) time.sleep(t/1000.) m.acquire() print(txt) m.release() def main(): t1 = threading.Thread(target=draw, args=("Heads",)) t1.start() t2 = threading.Thread(target=draw, args=("Tails",)) t2.start() t1.join() t2.join() if __name__ == "__main__": main()