文章目录

  • 1. 先指定多进程或多线程
  • 2. 指定并行/多线程需要执行的任务
  • 3. 最后递交给cpu即可
  • 完整案例

使用joblib包,导入:from joblib import Parallel

1. 先指定多进程或多线程

multi_work = Parallel(n_jobs=2, backend='multiprocessing')

其中:

  • backend="threading"时为线程
  • 当n_jobs=-1时,使用所有的CPU执行并行计算;
  • 当n_jobs=1时,就不会使用并行代码,即等同于顺序执行,可以在debug情况下使用;

2. 指定并行/多线程需要执行的任务

使用的格式是:

# 这是三个任务,格式是[ 函数名, [参数列表], {参数列表} ]
task1 = [add_func, [2, 3], {}]  # 计算2+3
task2 = [add_func, [4], {'y': 5}]  # 计算4+5
task3 = [add_func, [], {'x': 1, 'y': 100}]  # 计算1+100

3. 最后递交给cpu即可

result = multi_work([task1, task2, task3])
print(result)

完整案例

from joblib import Parallel
import osdef add_func(x, y):print("当前进程:", os.getpid(), " 父进程:", os.getppid()) # 打印当前的进程ID与父进程IDreturn x + yif __name__ == '__main__':multi_work = Parallel(n_jobs=2, backend='multiprocessing')  # 创建一个多线程/多进程的辅助类# backend="threading"时为线程# 当n_jobs=-1时,使用所有的CPU执行并行计算;# 当n_jobs=1时,就不会使用并行代码,即等同于顺序执行,可以在debug情况下使用;task1 = [add_func, [2, 3], {}]  # 计算2+3task2 = [add_func, [4], {'y': 5}]  # 计算4+5task3 = [add_func, [], {'x': 1, 'y': 100}]  # 计算1+100result = multi_work([task1, task2, task3])print(result)  # [5, 9, 101]

joblib多线程、多进程学习案例(一)——一步步写多进程任务相关推荐

  1. joblib多线程、多进程学习案例(三)

    还有更加简写的方法,也是通常见到的方式: from joblib import Parallel, delayeddef add_func(x, y):return x + yif __name__ ...

  2. Vue3+TypeScript从入门到进阶(六)——TypeScript知识点——附沿途学习案例及项目实战代码

    文章目录 一.简介 二.Vue2和Vue3区别 三.Vue知识点学习 四.TypeScript知识点 一.JavaScript和TypeScript 二.TypeScript的安装和使用 1.Type ...

  3. Webpack从入门到进阶(二)---附沿路学习案例代码

    文章目录 Webpack从入门到进阶(一)---附沿路学习案例代码 一.Webpack简介 1.前端发展的几个阶段 2.前端三个框架的脚手架 3.Webpack是什么? 4.webpack和vite ...

  4. java多线程基础学习[狂神说java-多线程笔记]

    java多线程基础学习 一.线程简介 1.类比 2.程序进程线程 3.线程的核心概念 二.线程的实现(重点) 调用方法与调用多线程的区别 Thread 类 1.thread使用方法 2. 代码实现 3 ...

  5. 多线程编程学习笔记——async和await(三)

    接上文 多线程编程学习笔记--async和await(一) 接上文 多线程编程学习笔记--async和await(二) 五.   处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...

  6. java 图片手动切换_JavaScript学习案例之手动切换轮播图片

    javascript学习案例之手动切换轮播图片 效果图: 思路: 1.先做界面 1.1制作按钮及点击触发事件 1.2引入一张图片 2.书写css 2.1跳转p盒子的布局(宽.高.边框线.水平居中.文字 ...

  7. oracle pl sql示例,oracle PL SQL学习案例(一)

    oracle PL SQL学习案例(一) [示例1.1]  查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...

  8. Cookie 学习案例之三天免登录

    Cookie 问题:HTTP 协议是没有记忆功能的,一次请求结束后,相关数据会被销毁.如果第二次的请求需要使用相同的请求数据怎么办呢?难道是让用户再次请求书写吗? 解决:使用 Cookie 技术 解释 ...

  9. 多线程编程学习笔记——任务并行库(二)

    接上文 多线程编程学习笔记--任务并行库(一) 三.   组合任务 本示例是学习如何设置相互依赖的任务.我们学习如何创建一个任务的子任务,这个子任务必须在父任务执行结束之后,再执行. 1,示例代码如下 ...

最新文章

  1. WAIC 2021 | 百度量子计算段润尧:从理论到实践谈量子人工智能
  2. c语言内存分配与释放 不同类别变量的内存分配和释放的区别
  3. php 类别名,关于php:从类别ID laravel获取类别名称
  4. Github-Git for windowsTortoiseGit下载与安装
  5. Python 学习小记
  6. 利用navicat 进行 mysql建表语句转oracle建表语句
  7. Axure动态显示实时时间
  8. Zemax操作--9(全局坐标设定及使用方法)
  9. 什么是EJB?不再神秘!
  10. 如何让网站被百度快速收录?如何查询百度收录情况?
  11. 美国北亚利桑那大学计算机专业排名,美国北亚利桑那大学排名学费
  12. 暑假计算机教育培训总结,暑假信息技术培训心得
  13. xxl-job快速入门
  14. 微信小程序实现带参数的分享功能
  15. (附源码)Springboot酒店会员点餐系统 毕业设计 072005
  16. 开关电源-半桥LLC控制
  17. 2017计算机系书单推荐(排版更新)
  18. 【Simapro软件教程】参数进行灵敏度分析
  19. PrintWriter的print和write输出区别
  20. he Enigma Protector一字节过注册

热门文章

  1. android textview基线,Textview画文字基线的问题
  2. astrm30米分辨率高程数据下载_如何下载道路沿线1000米范围内的高程?
  3. Unreal Engine 4 基于网格的水面模拟实现
  4. abp框架(aspnetboilerplate)设置前端报错显示
  5. Python基础(五)
  6. 【软件工程实践 · 团队项目】 第二次作业
  7. 视+AR正式发布EasyAR引擎2.0版,并宣布开放AR相机平台
  8. 思维习惯埋下的陷阱:在eVC中使用Slider、Spin等控件
  9. Linux下最快速共享目录的方法
  10. 罗森伯格荣获2015年度中国数据中心优秀供应商与中国十大布线品牌两项大奖