[英]Python starting subprocess as admin without calling process being admin
[英]Starting a process as a subprocess in Python
我正在编写一个使用以下代码的使用多个工作进程(预分叉模型)的程序。
from multiprocessing import Process
for i in range(0,3):
Process(target=worker, args=(i,)).start()
我使用Windows。 我注意到,当我希望它们作为子流程启动时,它们作为单独的流程运行。 如何使它们成为主流程的子流程?
我不愿意使用子流程模块,因为它似乎适合运行外部流程(就我所使用的而言)。
更新 :Windows似乎不会将新进程作为子进程启动。 Python在Windows中不支持getppid()(获取父代的PID)。
您似乎在这里混淆术语。 子流程是一个单独的流程。 所创建的将是处理儿童程序的主要过程,在这个意义上是子进程。 如果要使用线程,请使用multithreading
而不是multiprocessing
,但请注意,Python不会对多个线程使用多个内核/ CPU。
我不愿意使用
subprocess
模块,因为它似乎适合运行外部流程
对不起,我不明白这句话。
墙子流程是什么? 对我来说,它们是您主要流程的子流程。 这是我的示例并返回了输出。
import time, os
from multiprocessing import Process
def worker():
print "I'm process %s, my father is %s" % (os.getpid(), os.getppid())
print "I'm the main process %s" % os.getpid()
for i in range(0,3):
Process(target=worker).start()
输出为:
I'm the main process 5897
I'm process 5898, my father is 5897
I'm process 5899, my father is 5897
I'm process 5900, my father is 5897
您有3个子流程附加到主流程...
简短答案: http : //docs.python.org/library/threading.html
更长:我不明白这个问题,艾奇纽。 在典型的Unix模型中,一个进程只能启动的子进程是子进程。 我有一种强烈的感觉,我们两个人之间存在词汇冲突,我不知道该如何去解决。 您似乎在想一个“内部过程”。 在任何语言或操作系统中,这是一个例子吗?
我可以证明Python的子流程模块已被广泛使用。
您编写了“ ...多个工作线程...”,您是否阅读过此响应顶部第一行中提到的文档?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.