MST

星途 面试题库

面试题:Python中如何使用multiprocessing模块创建一个简单的多进程程序

请使用Python的multiprocessing模块编写一个程序,创建两个子进程,每个子进程分别打印不同的信息,例如一个打印 'Process 1 is running',另一个打印 'Process 2 is running',并解释程序中各个部分的作用。
15.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import multiprocessing


def process_function1():
    print('Process 1 is running')


def process_function2():
    print('Process 2 is running')


if __name__ == '__main__':
    process1 = multiprocessing.Process(target=process_function1)
    process2 = multiprocessing.Process(target=process_function2)

    process1.start()
    process2.start()

    process1.join()
    process2.join()

程序各部分作用解释:

  1. 导入模块
    import multiprocessing
    
    导入multiprocessing模块,该模块提供了一个强大的基于进程的并行编程接口,用于创建和管理进程。
  2. 定义进程执行函数
    def process_function1():
        print('Process 1 is running')
    
    
    def process_function2():
        print('Process 2 is running')
    
    这两个函数分别定义了每个进程要执行的任务。在本程序中,process_function1函数打印Process 1 is runningprocess_function2函数打印Process 2 is running
  3. 主程序部分
    if __name__ == '__main__':
    
    在Windows系统下,multiprocessing模块要求主代码必须放在if __name__ == '__main__':块中,以避免在创建新进程时出现问题。在类Unix系统中,虽然不是严格必需的,但这也是一种良好的编程习惯。
  4. 创建进程对象
    process1 = multiprocessing.Process(target=process_function1)
    process2 = multiprocessing.Process(target=process_function2)
    
    使用multiprocessing.Process类创建两个进程对象process1process2target参数指定每个进程要执行的函数。
  5. 启动进程
    process1.start()
    process2.start()
    
    调用每个进程对象的start方法,启动进程,操作系统会为每个进程分配资源并开始执行对应的函数。
  6. 等待进程结束
    process1.join()
    process2.join()
    
    调用每个进程对象的join方法,主进程会等待这两个子进程执行完毕后再继续执行后续代码,确保程序按预期顺序执行。