Python 为什么进程会自动启动,杀不死?

现象是这样的,有些时候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

阅读 4.4k
1 个回答

初步来看是真的是sublime引起的,因为安装了一些自动补全,自动提示的包,在写代码的时候sub会调用python来为我们最一些补全和差错

又因为我代码卡死是经常容易发生的事情,又不知道卡死的是哪一个pytohn,故使用命令结束所有的python进程,这就导致本来运行在sublime里的python进程遭到杀死,sublime检测到后,会自动重启python进程,造成了我感觉python杀不死的假象

不过sublime表面小巧,启动快速,占内存小,但就我目前的配置来说,这样(可能由插件引起)的占cpu还是比较高的,电脑是i7 7700,占了有30%到40%差不多,不杀进程,用sublime倒是一点都不卡,主要是写的程序一般为cpu密集型的,sub占我cpu我是不太高兴,现在采取的做法是一段时间重启下sublime可以解决大部分问题

以上

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题