‘threading.settrace(func)’
sets a trace function for all threads started from the threading module.
Following post explain about trace
function in detail.
MyThread.py
import threading import time import linecache def traceit(frame, event, arg): if event == "line": lineno = frame.f_lineno line = linecache.getline("test.py", lineno) print("line", lineno, line) return traceit class MyThread(threading.Thread): def run(self): print(threading.current_thread().getName()," with id ",threading.get_ident()," Started") print(threading.current_thread().getName()," with id ",threading.get_ident()," Finished") threading.settrace(traceit) thread1 = MyThread(name="Thread_1") thread2 = MyThread(name="Thread_2") thread3 = MyThread(name="Thread_3") thread1.start() thread2.start() thread3.start()
$ python3 MyThread.py line 15 line = linecache.getline("test.py", lineno) line 1240 line 1241 line 1158 line 1091 line 1092 Thread_1 with id 4318040064 Started line 16 print("line", lineno, line) line 1240 line 1241 line 1158 line 1091 line 1092 Thread_1 with id 4318040064 Finished line 15 line = linecache.getline("test.py", lineno) line 15 line = linecache.getline("test.py", lineno) line 1240 line 1240 line 1241 line 1158 line 1241 line 1091 line 1158 line 1092 Thread_2 with id 4333768704 Started line 1091 line 16 print("line", lineno, line) line 1092 line 1240 Thread_3 with id 4350545920 Started line 1241 line 16 print("line", lineno, line) line 1240 line 1241 line 1158 line 1091 line 1158 line 1091 line 1092 line 1092 Thread_3 with id 4350545920 Finished Thread_2 with id 4333768704 Finished
No comments:
Post a Comment