在Python中,创建多进程可以通过以下几种方法:
1. 使用`multiprocessing.Process`类:
from multiprocessing import Processdef task_function(arg1, arg2):执行任务print(f"Process {os.getpid()} is running with args {arg1} and {arg2}")if __name__ == "__main__":process1 = Process(target=task_function, args=("hello", "world"))process2 = Process(target=task_function, args=("goodbye", "world"))process1.start()process2.start()process1.join()process2.join()
2. 使用`multiprocessing.Pool`创建进程池:
from multiprocessing import Pooldef task_function(args):执行任务print(f"Process {os.getpid()} is running with args {args}")if __name__ == "__main__":with Pool(processes=2) as pool:pool.map(task_function, [("hello", "world"), ("goodbye", "world")])
3. 通过继承`multiprocessing.Process`类创建自定义进程:
from multiprocessing import Processclass MyProcess(Process):def __init__(self, arg1, arg2):super().__init__()self.arg1 = arg1self.arg2 = arg2def run(self):执行任务print(f"Process {os.getpid()} is running with args {self.arg1} and {self.arg2}")if __name__ == "__main__":process1 = MyProcess("hello", "world")process2 = MyProcess("goodbye", "world")process1.start()process2.start()process1.join()process2.join()
4. 使用`multiprocessing.Pipe`进行进程间通信:
from multiprocessing import Process, Pipedef sender(conn):conn.send(["hello", "world"])conn.close()def receiver(conn):message = conn.recv()print(f"Received: {message}")conn.close()if __name__ == "__main__":parent_conn, child_conn = Pipe()process1 = Process(target=sender, args=(child_conn,))process2 = Process(target=receiver, args=(parent_conn,))process1.start()process2.start()process1.join()process2.join()
以上是Python中创建多进程的几种常见方法。请根据具体需求选择合适的方法

