编写代码监控线程存活时间,要求监控自己创建的线程,该线程每隔两秒打印一次当前迭代次数,最后终止该线程。并且打印线程的创建时间及消亡时间(年月日分秒的格式)。最后打印线程经历的总时间
时间: 2024-05-08 21:20:45 浏览: 52
下面是一个简单的实现:
```python
import threading
import datetime
import time
class MyThread(threading.Thread):
def __init__(self):
super().__init__()
self.start_time = datetime.datetime.now()
def run(self):
count = 0
while True:
count += 1
print("迭代次数:", count)
time.sleep(2)
if count >= 10:
break
end_time = datetime.datetime.now()
print("线程消亡时间:", end_time.strftime("%Y-%m-%d %H:%M:%S"))
print("线程创建时间:", self.start_time.strftime("%Y-%m-%d %H:%M:%S"))
print("线程经历的总时间:", str(end_time - self.start_time))
if __name__ == "__main__":
t = MyThread()
t.start()
t.join()
```
在这个例子中,我们定义了一个名为 `MyThread` 的类,它继承了 threading.Thread 类。我们在 `MyThread` 类中创建了一个变量 `start_time`,该变量存储了线程创建的时间。然后我们重写了 `run` 方法,在其中定义了一个 while 循环,计数器 `count` 每隔 2 秒加 1,直到计数器达到 10,然后线程退出。在 `run` 方法结束时,我们打印了线程消亡的时间、线程创建的时间和线程经历的总时间。
在主程序中,我们创建了一个 `MyThread` 的实例并启动它,然后使用 `join` 方法等待线程执行结束。
阅读全文