当我尝试让我的脚本成为多线程时,
我发现了多处理,
我想知道是否有办法让多处理与线程一起工作?
- cpu 1 -> 3 个线程(worker A、B、C)
- cpu 2 -> 3 个线程(worker D、E、F)
- ...
我想自己做,但我遇到了很多问题。
有没有办法让这两者协同工作?
最佳答案
您可以生成多个进程
,然后从它们内部生成线程
。每个进程几乎可以处理标准解释器线程可以处理的任何事情,因此没有什么可以阻止您在每个进程中创建新线程甚至新进程。作为一个最小的例子:
def foo():
print("Thread Executing!")
def bar():
threads = []
for _ in range(3): # each Process creates a number of new Threads
thread = threading.Thread(target=foo)
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
if __name__ == "__main__":
processes = []
for _ in range(3):
p = multiprocessing.Process(target=bar) # create a new Process
p.start()
processes.append(p)
for process in processes:
process.join()
线程之间的通信可以在每个进程
中处理,进程之间的通信可以使用队列或管理器对象在根解释器级别处理。
关于python - 多线程处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45129894/