Я новичок в потоке Python. Я пытаюсь понять, что происходит, когда os.system () вызывается из потока Python. Я понимаю, что потоки разделяют файловые дескрипторы, кучу, код и глобальные переменные. Я также читал, что os.system (cmd) создает новую подоболочку и выполняет выполняемый cmd.
У меня такой вопрос: когда потоки Python вызывают os.system (cmd), а cmd выполняет команду «./test.exe input_file.dat», выполняет ли процесс для ./test.exe что-нибудь общее (т. Е. Входные файлы, адресное пространство) , куча и т.д.) с потоками питона? Другими словами, os.system (cmd) создает новый процесс, который не имеет никакого отношения к процессу или потоку вызывающей стороны?
Ниже я предоставил код Python, который я написал.
#!/usr/bin/python
import threading
import os
semaphore = threading.Semaphore(3)
def run_command(cmd):
with semaphore:
os.system(cmd)
for i in range(3):
threading.Thread(target=run_command, args=("./test.exe input_file.dat", )).start()