from concurrent.futures import ThreadPoolExecutor

class A:
    def p(self):
        print("hello")
        
def foo(value, a):
    print(value)
    a.p()

with ThreadPoolExecutor(max_workers=1) as executor:
    a = A()
    futures = [executor.submit(foo, *x) for x in [(1, a), (2, a), (3, a)]]
    for f in futures:
        print(f.result())

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: