Multithreading example

threading.py
 1# © 2024 Autodesk, Inc. All rights reserved.
 2
 3import threading
 4import time
 5
 6lock = threading.Lock()
 7threads = []
 8
 9def newSceneCallback():
10    global threads
11    for t in threads:
12        t.terminate()
13        t.join()
14
15setNewSceneCB(newSceneCallback)
16
17class MyThread(threading.Thread):
18    def __init__(self, index):
19        threading.Thread.__init__(self)
20        self.index = index
21        self.running = True
22
23    def run(self):
24        global lock
25        while self.running:
26            lock.acquire()
27            print(('thread #' + str(self.index)))
28            #with open('c:/log.txt', 'a') as logf:
29            #    logf.write('thread #' + str(self.index) + '\n')
30            lock.release()
31            time.sleep(1)
32
33    def terminate(self):
34        self.running = False
35
36for i in range(0,10):
37    t = MyThread(i)
38    threads.append(t)
39    t.start()