Python 进程

EN
EN
2023-04-05 / 0 评论 / 28 阅读 / 正在检测是否收录...
'''
进程之间相对独立,不共享全局变量

进程常用方法
start() 启动进程实例
is_alive() 判断子进程是否活着 True/False
join([timeout]) 是否等待子进程结束(阻塞主进程) timeout = 时间
terminate() 立即终止子进程

进程与线程对比

进程能够完成多任务,如一台电脑可以运行多个软件
线程能够完成多任务,如一个软件打开多个窗口

1。进程资源不共享,线程资源可共享
2。一个程序至少有一个进程,一个进程至少有一个线程
3。线程的划分尺度小于进程,多线程程序并发性高
4。进程在执行过程中拥有独立的内存单元
5。线程不能独立执行 必须依赖在进程中
6。线程执行开销小,但不理由资源的管理和保护。进程相反

计算密集型  计算量比较大时,用多进程
IO密集型   如爬虫、文件读写 用多线程
'''

import os
from multiprocessing import Process

# print( os.getpid() ) # 查看当前进程
# print( os.getppid() ) # 查看当前进程父进程

def one():
    print("one 子进程ID:%s,父进程id:%s" % (os.getpid(),os.getppid()))

def two():
    print("two 子进程ID:%s,父进程id:%s" % (os.getpid(),os.getppid()))

if __name__ == '__main__':
    # 创建子进程
    p1 = Process(target=one)
    p2 = Process(target=two)

    # 启动进程
    p1.start()
    p2.start()

    # 修改进程名称
    p1.name = "亦"
    p2.name = "尔"

    print("主进程ID:%s,父进程id:%s" % (os.getpid(), os.getppid()))

'''
>>>
主进程ID:12834,父进程id:2918
one 子进程ID:12836,父进程id:12834
two 子进程ID:12837,父进程id:12834
'''
0

评论 (0)

取消