1, 创建方式
- multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另外的事情
from multiprocessing import Process import time def run_proc(): """子进程要执行的代码""" while True: print("----2----") time.sleep(1) if __name__=='__main__': # 创建了一个子进程 对象 p = Process(target=run_proc) # 子进程开始启动 p.start() while True: print("----1----") time.sleep(1)
2, 进程为什么耗费资源?
- 创建的子进程完全复制主进程的资源,浪费资源,进程越多,性能越低,进程号不一样,但是代码是共享的
- 程序+资源等于进程,相当于两份资源
- 进程数越多,效率不一定越高
3, 写时拷贝
- 修改的时候进行拷贝,不修改的时候共享一份资源
4, 进程和线程的区别
- 进程就是一坨资源,双击运行起来的
- QQ多开是多进程
- 一个进程里面实现多任务线程’’
- 代码变成进程,线程去执行代码,一个进程里面必有一个主线程
- 多进程执行多任务是多份资源
- 多线程多任务是一份资源
- 线程依赖进程