return "test result", x ** x def square(x): from time import sleep sleep(0.5) return x*x #with ThreadPool(workers=10) as pool: # foo_result = pool.submit(fn=foo, args=(10, 20)) # bar_result = pool.submit(fn=bar, args=("Hello", 10)) # test_result = pool.submit(fn=test, args=(100,)) results = [] pool = ThreadPool(workers=10) pool.start() results.append(pool.submit(fn=foo, args=(10, 20))) results.append(pool.submit(fn=bar, args=("Hello", 10))) results.append(pool.submit(fn=test, args=(100,))) while results: for r in results: if r.ready: print("result = ", r.result) results.remove(r) sleep(0.5) #print(foo_result.result(), bar_result.result(), test_result.result()) pool.stop()