import random import threading import time import sys mem = {} threads = [] def thread(a, b, c, d): def f(): # print(a, b, c, d) try: match a: case 'set': try: mem[b] = int(c) except: mem[b] = c case 'print': print(mem[c]) case 'add': mem[b] += mem[c] case 'sub': mem[b] -= mem[c] case 'mul': mem[b] *= mem[c] case 'div': mem[b] /= mem[c] if mem[b] > 0 and int(d) > 0: time.sleep(0.001) threads[int(d) - 1]() except: return return f with open(sys.argv[1]) as f: for line in f.readlines(): threads.append(thread(*line.split())) for thread in sorted(threads, key=lambda _: random.random()): threading.Thread(target=thread).start()