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()