我正在开发服务器监控程序。 我使用线程编码来收集一些信息,例如cpu,mem,磁盘,ping等。 并导致python.exe已停止错误。
APPCRASH
流程以退出代码-1073741819 (0xC0000005)
随着我使用更多线程,错误发生的速度更快!
这是我的代码
self.thread = Thread(target=self.clntResourceGetter, args=())
self.thread.start()
def clntResourceGetter(self):
time.sleep(5)
while self.t_flag:
for client in self.clientList:
try:
stdin1, stdout1, stderr1 = self.sshListForResMon[client[0]].exec_command('''free |grep Mem |awk '{print $2" "$3" "$3}' ''')
stdin2, stdout2, stderr2 = self.sshListForResMon[client[0]].exec_command('''vmstat |tail -1 |awk '{print $15}' ''')
[...]
resourceInfoDAO = ResourceInfoDAO()
resourceInfoDAO.insertResourceInfo(tmpClient)
except Exception as e:
print(e)
time.sleep(5)
代码很简单。 如图所示,线程执行clntResourceGetter函数并永远运行。 为什么线程会导致python.exe停止错误?