需求:
   在有多线程的情况下,我们可以使用线程帮我们处理一些事情,但是在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 多进程基本语法的更多相关文章

  1. PYTHON多进程样码

    敲了一晚上,留个念想. 发现它和LINUX的C编程差不多,就是作了PYTHON化的语法封装. 以后希望有机会能用上.. A,多进程函数化实现 import multiprocessing import ...

  2. Python多进程与多线程编程及GIL详解

    介绍如何使用python的multiprocess和threading模块进行多线程和多进程编程. Python的多进程编程与multiprocess模块 python的多进程编程主要依靠multip ...

  3. Python多进程编程

    转自:Python多进程编程 阅读目录 1. Process 2. Lock 3. Semaphore 4. Event 5. Queue 6. Pipe 7. Pool 序. multiproces ...

  4. Python多进程(1)——subprocess与Popen()

    Python多进程方面涉及的模块主要包括: subprocess:可以在当前程序中执行其他程序或命令: mmap:提供一种基于内存的进程间通信机制: multiprocessing:提供支持多处理器技 ...

  5. Python多进程使用

    [Python之旅]第六篇(六):Python多进程使用   香飘叶子 2016-05-10 10:57:50 浏览190 评论0 python 多进程 多进程通信 摘要:   关于进程与线程的对比, ...

  6. python多进程断点续传分片下载器

    python多进程断点续传分片下载器 标签:python 下载器 多进程 因为爬虫要用到下载器,但是直接用urllib下载很慢,所以找了很久终于找到一个让我欣喜的下载器.他能够断点续传分片下载,极大提 ...

  7. Python多进程multiprocessing使用示例

    mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多. import multipr ...

  8. Python多进程并发(multiprocessing)用法实例详解

    http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Pyt ...

  9. python yield from 语法

    python yield from 语法 yield语法比较简单, 教程也很多 , yield from的中文讲解很少 , python官网是这样解释的 PEP 380 adds the yield ...

随机推荐

  1. Linux系统挂载windows共享目录报错mount error(121):remote error I/O error

    经查,这是由于NFS(Network File System)即网络文件系统服务器有多个版本,V2.V3.V4.而且各版本同时运行,因此挂载时需要说明版本号 mount -o username='pk ...

  2. 【CF542D】Superhero's Job 暴力

    [CF542D]Superhero's Job 题意:$ f(x)=\sum\limits_{d|x,gcd(d,{x\over d})=1} d$ 给出 $A$ ,求方程 $f(x)=A$ 的正整数 ...

  3. redis(四)--简单实现Redis缓存中的排序功能

    在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应 ...

  4. Excel GET.CELL说明

    GET是得到的意思CELL是单元格的意思  --->那么它的意思就是你想得到单元格的什么东西(信息)  函数定义:  GET.CELL(类型号,单元格(或范围))  其中类型号,即你想要得到的信 ...

  5. python全栈开发 * 30知识点汇总 * 180713

    30 re模块2一.正则表达式在线测试 在线测试工具 http://tool.chinaz.com/regex/(一).*?的用法: . 是任意字符 * 是取 0 至 无限长度 ? 是非贪婪模式.合在 ...

  6. JavaScript基础知识(字符串的方法)

    字符串的方法 1.字符串: 在js中被单引号或双引号包起来的内容都是字符串: var t = "true"; console.log(typeof t);// "stri ...

  7. bootstrap-treeview 中文开发手册

    官方文档URL:  https://www.npmjs.com/package/bootstrap-treeview 2017年11月21日10:45:10 演示:http://www.htmleaf ...

  8. mysql新建数据库、新建用户及授权操作

    1.创建数据库create database if not exists test176 default charset utf8 collate utf8_general_ci; #utf8_gen ...

  9. CH#46 磁力块 分块

    正解:分块+bfs 解题报告: 先放个传送门,然后瞎扯淡下QAQ 突然感觉不停课大概是正确的选择QAQ 大概实在是没有天赋?明明都知道正解是分块甚至还听了下解法感觉理解了,再看一次依然没想到解法,,, ...

  10. 智能门锁测试程序和PCB板线路通断检测程序经验总结

    这次去WZ出差,还是很累的,之前一年多没有搞嵌入式了,更重要的是之前没有接触太深刻GPIO的用法等等原因,导致很心累. 必须掌握的技能: (1)SPI和IIC总线,模拟和专用外设两种方式,他们的重要性 ...