之前有很多次跑程序跑进了死循环,然后就希望有个类似sv里的error达到一定数量就停止仿真的功能,嵌入到循环里设置10000次循环时候结束程序,我就看看这第10000次循环程序到低在干嘛呢!
所以我就准备解决这个事,自然而然的我就想到了多线程的方式于是我试了半天看了各种技术什么start()/join()什么含义,子线程父线程关系,os.exit()只能退出子线程啊,连守护线程setDaemon(True)都看明白咋用了。最后还真让我做了一个模板出来,但是吧,最后的最后我发现好像想的太多了,这事跟线程就没啥关系,不如这样就好了:
# -*-coding:utf-8-*-
import threading
import time
import os
import re
import sys
#==============================
#watch dog define
#==============================
wdg_cnt = 0
wdg_max = 10
def wdg_event():
global wdg_cnt
global wdg_max
if wdg_cnt == wdg_max:
print("too many event!")
sys.exit(0)
wdg_cnt += 1
pass
#==============================
#watch dog define over
#==============================
def main():
for i in range(100):
wdg_event()
print(i)
if __name__ == '__main__':
main()
需要定位哪里就把wdg_event怼在哪里就行了,不需要他起作用那就把wdg_max设为-1。