现象是这样的,有些时候python运行死了,就用任务管理器强制结束
过几秒又会自动启动出好多,可能一个,两个,三个python进程出来
杀了他们,过会又出来,如此反复,不能真正的杀死pytohn
有时候只是会多出几个来,杀了就不会再自启了,但是像永远杀不死的情况也是有发生过的
这样谁受得了啊,无限自启,还越来越多
有人遇到类似的问题吗?怎么解决?
就一段普通的代码(代码会造成线程死锁):
import threading
import time
class MyThread(threading.Thread):
def run(self):
global num
time.sleep(1)
if mutex.acquire(1):
num = num+1
msg = self.name+' run!'
print(msg)
# 卡在这里了,自身不release就要接着acquire,不可能
mutex.acquire()
print('acquire')
mutex.release()
print('release 1')
mutex.release()
print('release 2')
num = 0
mutex = threading.Lock()
def test():
for i in range(5):
t = MyThread()
t.start()
if __name__ == '__main__':
test()
换成正常运行的也是会出现类似的问题(这个可以正常运行):
import threading
import time
class MyThread(threading.Thread):
def run(self):
global num
time.sleep(1)
if mutex.acquire(1):
num = num+1
msg = self.name+' run!'
print(msg)
# 卡在这里了,自身不release就要接着acquire,不可能
# mutex.acquire()
# print('acquire')
# mutex.release()
# print('release 1')
mutex.release()
print('release 2')
num = 0
mutex = threading.Lock()
def test():
for i in range(5):
t = MyThread()
t.start()
if __name__ == '__main__':
test()
但是还是会出现上面的情况
kp是cmd命令:
taskkill /F /IM python.exe()
有时候又好了,比如现在:
就是不知道为什么会这样,明明程序中并没有用多进程还给我这么搞
代码不限于上面的那个,有些时候写些其他东西也会出现类似的情况
求解,谢谢!
是win7下,python3.6 64位,包装了好多(应该不是包的问题吧),python我觉得我的也没啥问题
我可能就是不知道pytohn运行机制吧
貌似找到了一个怀疑的原因:
我是用sublime text3写python,装过这些插件:
原来就发现某个插件(记不得名称了),会自动查找我代码的语法错误,它会运行我本地的pytohn,造成运行好几个python进程,造成我cpu占用过高(其实也没多高),然后我一怒之下就把那插件给卸载了
刚发生的状况为,我先kp掉所有的pytohn进程,然后切换回sublime text3中,发现sub test 假死,卡了1秒多,然后多了几个pytohn进程,十有八九吧,不是代码的问题233333
后来我关了sub,kp掉pytohn,打开sub,又多几个python,没跑了,十有八九,要不sub的问题,要不sub插件的问题
有了解sub插件的大佬嘛?求解释,大概应该是哪几个插件有问题?
还是我又理解错了,不是sub的问题??
谢谢
对了,刚关了sub,python就没了....
我是不是该抛弃sub了....
终于知道为啥要用vim写代码了,我感觉我代码有问题都是运行后编译器高速我的,sub感觉还算好用吧,要不就是我强迫症2333333
初步来看是真的是sublime引起的,因为安装了一些自动补全,自动提示的包,在写代码的时候sub会调用python来为我们最一些补全和差错
又因为我代码卡死是经常容易发生的事情,又不知道卡死的是哪一个pytohn,故使用命令结束所有的python进程,这就导致本来运行在sublime里的python进程遭到杀死,sublime检测到后,会自动重启python进程,造成了我感觉python杀不死的假象
不过sublime表面小巧,启动快速,占内存小,但就我目前的配置来说,这样(可能由插件引起)的占cpu还是比较高的,电脑是i7 7700,占了有30%到40%差不多,不杀进程,用sublime倒是一点都不卡,主要是写的程序一般为cpu密集型的,sub占我cpu我是不太高兴,现在采取的做法是一段时间重启下sublime可以解决大部分问题
以上