所以我写了一个小的多线程SMTP程序。问题是每次我运行它,它很快冻结计算机。该脚本似乎仍然有效,因为我的网卡仍在点亮并收到电子邮件,但在某些情况下,它会完全锁定并停止发送电子邮件。
这是我的两个脚本文件的链接。第一个是用于启动程序的那个:
答案 0 :(得分:3)
首先,您正在使用创建子流程的popen
,即。进程不是线程。我认为这就是你的意思。
我的猜测是程序会陷入一个循环,它会持续生成进程,操作系统可能不喜欢这个进程。 (这种事情被称为forkbomb,除非已经使用ulimit
设置了进程限制,否则这是冻结Linux的好方法。)我无法找到该错误但是如果我是你,我每次生成或杀死子进程时都会记录消息,如果一切正常,请密切关注系统(在Unix系统上ps
或top
),看看是否进程真的被杀了。