◎知识点
子进程的创建与启动之调用函数fork()
自动创建与启动的父线程
◎脚本练习
▽ 子进程的创建与启动之调用函数fork()
""" 标准库模块os中提供了一个函数fork(),用于将当前进程复制一份子进程,而后父进程和子进程从 调用fork()处开始分叉(fork的含义),兵分两路,继续并行运行后面的程序。 与普通函数不同的是,函数fork()会返回两次,分别在父进程和子进程内返回。返回值有三种情况: (1) 返回值小于0,表示复制子进程失败 (2) 返回值为0,表示处在子进程中 (3) 返回值大于0,表示处在父进程中,返回值就是子进程的id 在Windows操作系统上无法调用函数fork(),因为函数fork()不是跨平台的。而模块multiprocessing 是跨平台的。 """ import os try: pid = os.fork() except OSError: print('你的操作系统不支持调用函数fork()') exit() if pid < 0: print('复制子进程失败') elif pid == 0: print('我是子进程%d, 我的父进程是%d' % (os.getpid(), os.getppid())) else: print('我是父进程%d,我的子进程是%d' % (os.getpid(), pid))
▽ 自动创建与启动的父线程
""" 任何进程都会自动创建并启动一个线程,该线程被称为父(主)线程。 父(主)线程的默认名称是MainThread。 """ import time, threading # 方法current_thread()用于获得当前线程实例对象(自动创建与启动的父线程) print('自动创建并启动了父(主)线程:%s' % threading.current_thread().getName()) time.sleep(20)