Python 多进程基本语法
2018-01-03 18:15
246 查看
需求:
在有多线程的情况下,我们可以使用线程帮我们处理一些事情,但是在python这里 由于RSA锁的缘故,我们只能够用到一个cpu帮我们处理事情,一个cpu在处理多个线程时,是通过上下文的切换使我们产生幻觉,感觉他同时在处理多个线程,但是在这里cpu在进行上下问的切换也是要消耗cpu。cpu是处理计算的 如1+1的计算。io操作不占用cpu,io只做网络,磁盘,内存中读取数据。所以python多线程 不适合CPU密集操作行的任务,python更适合io密集型的任务。
方案:
这里可以使用进程,采取多进程的方式,可以使用到,多核的其他CPU,但是由于进程的原因,是不能共享数据的。
参数:
multiprocessing.Process(target=函数, args=('参数',)) #生成一个进程
注:Linux 每一个进程都是由父进程启动的。
注:每一个进程默认都有一个父进程。
多进程模板:
import multiprocessing import time def f(name): time.sleep(2) print('hello', name) if __name__ == '__main__': # 生成一个进程实例 p = multiprocessing.Process(target=f, args=('bob',)) # 启动一个进程 p.start() # 等待一个进程完成 p.join()多进程查看,主进程与子进程PID:
from multiprocessing import Process import os def info(title): print(title) # 打印模块名 print('module name:', __name__) # 打印父进程ID print('parent process:', os.getppid()) # 打印自己的ID print('process id:', os.getpid()) print("\n\n") def f(name): # 子进程调用info info('\033[31;1mfunction f\033[0m') print('hello', name) if __name__ == '__main__': # 主进程调用info info('\033[32;1mmain process line\033[0m') p = Process(target=f, args=('bob',)) p.start() p.join()
相关文章推荐
- Python 进程process语法
- Python基本语法经典教程
- Python开发-Python基础学习-Python基本语法
- 1.python基本语法
- python3基本语法
- Python基本语法
- Python基本语法[二],python入门到精通[四] (转)
- python的最最最最最基本语法(3)
- Python基本语法
- Python基本语法
- Python从入门到放弃(三):基本语句和语法
- python 学习笔记(一)通过做题来熟悉python 的基本语法
- Python学习笔记一 基本语法、变量类型、时间处理
- Python学习笔记(二)基本语法
- python语法31[基本数据类型和流程控制]
- 1.2 Python基本语法
- 我的Python学习之路之基本语法-函数
- python基本语法
- python基础知识——基本语法
- 1.python基本语法