本文为了说明例子,用中文作为变量写在了程序里面,一般编程最好不要那么写

本文目录

  • 同步(正常的情况)实现
  • 多进程
  • join方法的作用
  • 进程间数据隔离的实现

同步(正常的情况)实现

import timedef func():time.sleep(5)print('沉睡5秒后同步调用')if __name__ == '__main__':res = func()print('同步调用完成')

效果

多进程

windows操作系统下 创建进程一定要在main内创建
因为windows下创建进程类似于模块导入的方式会从上往下依次执行代码而linux中则是直接将代码完整的拷贝一份

方法一(使用函数)

from multiprocessing import Process
import timedef 要执行的函数(变量名):print('%s 正在运行'%变量名)time.sleep(5)print('%s 运行结束'%变量名)if __name__ == '__main__':#创建对象A = Process(target=要执行的函数, args=('进程名',))#哪怕里面只有1个元素都要用逗号隔开#开启进程A.start()#异步print('主进程')

效果

方法二,使用类(类的继承)

from multiprocessing import Process
import timeclass 类(Process):def 运行(self):print('开始执行')time.sleep(5)print('执行结束')if __name__ == '__main__':A = 类()A.start()print('主进程')

效果

join方法的作用

from multiprocessing import Process
import timedef 要执行的函数(变量名, n):print('%s 正在执行'%变量名)time.sleep(n)print('%s 执行结束'%变量名)if __name__ == '__main__':start_time = time.time()#A.join()  # 主进程等待子进程p运行结束之后再继续往后执行time.time()A_list = []for i in range(1, 10):A = Process(target=要执行的函数, args=('子进程%s'%i, i))A.start()A_list.append(A)for A in A_list:A.join()print('主进程所耗时间:', time.time() - start_time,'秒')

效果

进程间数据隔离的实现

from multiprocessing import Process变量 = '这是主进程,尚未剥削,仍有 1000000'def 要运行的函数():global 变量  # 局部修改全局变量 = '经剥削,还剩200'print('子进程',变量)if __name__ == '__main__':p = Process(target=要运行的函数)p.start()p.join()print(变量)

效果

pyhton学习笔记-爬虫相关-多进程同步异步的代码实现相关推荐

  1. 好记性不如烂笔头-linux学习笔记4apache相关知识

    好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...

  2. 经典神经网络论文超详细解读(八)——ResNeXt学习笔记(翻译+精读+代码复现)

    前言 今天我们一起来学习何恺明大神的又一经典之作: ResNeXt(<Aggregated Residual Transformations for Deep Neural Networks&g ...

  3. FPGA学习笔记(八)同步/异步信号的打拍分析处理及亚稳态分析

    系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...

  4. Python学习笔记——爬虫之Scrapy框架

    目录 Scrapy 框架 Scrapy的安装介绍 Windows 安装方式 Ubuntu 需要9.10或以上版本安装方式 入门案例 启动Scrapy Shell Item Pipeline Spide ...

  5. Reeds-Shepp曲线学习笔记及相关思考

       本篇博客主要记录在学习Reeds-Shepp曲线过程中的笔记及相关思考和概括总结 一.主要参考资料      1.提出Reeds-Shepp曲线的原始论文:[点击此处跳转]      2.路径规 ...

  6. Dubins曲线学习笔记及相关思考

       本篇博客主要记录在学习Dubins曲线过程中的笔记及相关思考和概括总结 一.主要参考资料      1.Andy G's Blog:[点击此处跳转]      2.Andy G's Blog的P ...

  7. Pyhton学习笔记第一天(Python基本语句)

    Python学习笔记第一天 注释 行注释 块注释 输出语句 举一反三 标识符 举一反三 多行语句 结束语 注释 什么是注释,注释相当于备注的信息,也可以在调试代码的时候隐藏执行代码,但只适合新手.老手 ...

  8. 影像组学视频学习笔记(12)-支持向量机(SVM)参数优化(代码)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(12)主要介绍: SVM参数优化(代码) 参数优化: 自动寻找最合适的γ和C组合. 原理:遍历所有给定的参数组合,对数据进行训练,找到最 ...

  9. Go语学习笔记 - websocket gorilla(附测试代码) | 从零开始Go语言

    目录 项目结构 消息结构 服务端代码 定义客户端行为 服务启动 测试代码 总结 学习笔记,写到哪是哪. websocket也是常用的协议了,在上一篇中主要测试使用了一下grpc. 下面我会把代码贴出来 ...

最新文章

  1. TypeError: to_bytes() missing required argument ‘byteorder‘ (pos 2)
  2. 大数据小白系列——HDFS(3)
  3. 使用MySQL验证Open***用户登录访问
  4. (算法)Trapping Rain Water I
  5. Python爬虫利器四PhantomJS的用法
  6. ES6学习笔记(五):轻松了解ES6的内置扩展对象
  7. 双十一清醒指南,送3本Python书
  8. iis+php解析漏洞修复,服务器解析漏洞分析和漏洞修复方法
  9. 20165318 预备作业3 Linux安装及学习
  10. java程序知识_java的基本知识点
  11. matlab函数作图格式,Matlab绘制函数图像函数示例汇总
  12. Request header field x-token is not allowed by Access-Control-Allow-Headers in preflight response.
  13. c# winform word模板 利用WORD 书签 定位替换 生成 WORD
  14. JAVA实现UTC时间转换成北京时间
  15. IJCAI 2022 | 求同存异:多行为推荐的自监督图神经网络
  16. Linux 切换JAVA 版本
  17. Lync 2010 升级到2013 之部署外部企业联盟!
  18. 面试系列(十六):58同城 后台开发
  19. SecureCRT 7 注册码
  20. c语言程序设计库搜索app,C语言编程宝典app

热门文章

  1. ubuntu16.04安装fcl库出现的问题
  2. 1024程序员-我的程序人生路
  3. qt记住上次打开的文件路径
  4. A-level化学氧化数配平法
  5. 《软件工程(第4版?修订版)》目录—导读
  6. python实现0到1之间的随机数
  7. 第三方支付接口测试面试要点
  8. leetcode 剑指 Offer 03. 数组中重复的数字 抽屉原理 一个萝卜一个坑
  9. JAVA设计模式十七--Composite(组合模式)
  10. python廖雪峰笔记