异步-没有睡眠,python子进程无法工作

2021-01-08 24点热度 0人点赞 0条评论

我正在开发一个python启动程序,它应该通过调用子进程来执行列表中的一些程序。代码是正确的,但工作起来很奇怪。

简言之,如果没有一些睡眠
输入
命令输入
.

示例如下:

import threading
import subprocess
import time

def executeFile(file_path):
  subprocess.call(file_path, shell=True)


def main():
  file = None

  try:
      file = open('./config.ini', 'r');
  except:
    # TODO: add alert widget
    print("cant find a file")

  pathes = [ path.strip() for path in file.readlines() ]

  try:
    for idx in range(len(pathes)):
        print(pathes[idx])
        file_path = pathes[idx];
        newThread = threading.Thread(target=executeFile, args=(file_path,))
        newThread.daemon = True
        newThread.start()
  except:
    print("cant start thread")


  if __name__ == '__main__':
    main()

    # IT WORKS WHEN SLEEP EXISTS
    time.sleep(10)

    # OR
    # input("Press enter to exit ;)")
但没有输入
睡眠
它不起作用:
if __name__ == '__main__':
   # Doesn't work
   main()

有人能解释一下为什么会这样吗?

我有一些想法,但我不确定。也许是因为子流程
是异步的,程序在子进程执行之前执行并关闭自己。
万一睡眠
输入
,程序暂停,并且子流程
有足够的时间执行。

谢谢你的帮助!

查看隐藏内容需要支付:¥1
查看

未经允许不得转载!异步-没有睡眠,python子进程无法工作

本文地址:https://ans.52learn.online/2157

ANS52LEARN

DO BEST