一个进程可以寄生多个线程。

CPU核数与进程个数是统一的,

若进程多于核数,那么只有等待上一进程执行完才能被执行。

------------------第一种进程创建方式------------------------

from multiprocessing import Processimport  time  

def A(name):  time.sleep(1)  print('haello', name, time.ctime())

if __name__ == "__main__":  p_list = []  for i in range(3):    # 创建三个进程    P = Process(target=A, args=('kay'))    p_list.append(p)    p.start()    # 准备进程,让CPU执行  for p in p_list:    p.join()  # 阻塞住,所以进程执行完才执行下面代码  print('end')

运行结果:

hello kay Wed Sep 19 10:18:00 2018
hello kay Wed Sep 19 10:18:00 2018
hello kay Wed Sep 19 10:18:00 2018
end

---------------------------第二种进程创建方式(类式调用)---------------------------------------

from multiprocessing import Processclass MyProcess(Process):    # 继承Process方法  def __init__(self, name):    super(MyProcess, self).__init__()  # 执行子类的__init__方法    self.name = name        # 防止执行父类中的方法  def run(self):    time.sleep(1)    print('hello', self.name, time.ctime())

if __name__ == "__main__":

   p_list = []

   for i in range(3):

      p = MyProcess('kay')

      p.start()

      p_list.append(p)

   for p in p_list:

      p.join()  # 阻塞住

    print('end')

  

运行结果:

hello kay Wed Sep 19 11:38:40 2018
hello kay Wed Sep 19 11:38:40 2018
hello kay Wed Sep 19 11:38:40 2018
end

在父类中也有封装name,如果不重新封装,会默认执行父类封装好的,而父类封装好的name是显示当前进程号。

转载于:https://www.cnblogs.com/uncle-kay/p/9673828.html

multiprocessing多进程(31-04)创建进程的两种方式相关推荐

  1. java匿名启动线程_使用匿名内部类:来创建线程的两种方式

    [Java]基础31:创建线程的两种方式 谢谢你的观看. 今天是我自学Java的第31天. 你的观看便是对我最大的鼓励. 话不多说,开始今天的学习: 线程的创建有两种方式,昨天学习过其中的一种: 创建 ...

  2. Python创建进程的四种方式

    Python创建进程的四种方式 百度百科 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构 ...

  3. 创建线程的两种方式:继承Thread类和实现Runnable接口

    第一种方式:继承Thread类 步骤:1.定义类继承Thread 2.覆写Threa类的run方法. 自定义代码放在run方法中,让线程运行 3.调用线程的star方法, 该线程有两个作用:启动线程, ...

  4. Java并发基础01. 传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  5. 【并发技术01】传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承 Thread 类,并重写 run() 方法:二是实现 Runnable 接口,覆盖接口中的 run() 方法,并把 Runnable 接口的实现扔给 T ...

  6. java jobdetail_Spring创建JobDetail的两种方式

    一.Spring创建JobDetail的两种方式 定时任务两种方式,Spring很好的封装使用Quartz的细节,第一种方式是利用SPring封装的Quartz类进行特定方法的实现,第二种是通过透明的 ...

  7. ubuntu下创建定时任务的两种方式及常见问题解决方案

    ubuntu下创建定时任务的两种方式及常见问题解决方案 参考文章: (1)ubuntu下创建定时任务的两种方式及常见问题解决方案 (2)https://www.cnblogs.com/maboii/p ...

  8. ubuntu创建用户的两种方式

    ubuntu创建用户有两种方式: useradd和adduser 这两者,就像零件与产品的关系.useradd是DIY,需要自己调配,adduser是品牌机,拿来就能用. 对于创建一般用户来讲,use ...

  9. PyCharm创建app的两种方式

    PyCharm创建app的两种方式 方式1 1-1 在terminal中敲如下代码 python manage.py startapp xxx 1-2 在settings.py中INSTALLED_A ...

最新文章

  1. 两个硬盘和文件相关的小技巧 (C#)
  2. 基于多阈值注意U-Net(MTAU)的MRI多模态脑肿瘤分割模型
  3. 棋盘格氧化铝标定板漫反射不反光12*9方格视觉光学校正板
  4. 数据科学自动化_数据科学会自动化吗?
  5. The authenticity of host 'github.com (52.74.223.119)' can't be established.
  6. Apple Pay 支付集成
  7. toastr-min.css,Toastr插件提示框使用说明
  8. JavaScript-输入输出语法
  9. xv6 - simple modern os for education purpose.
  10. 079 pandas模块
  11. Vim激荡30年发展史
  12. 优秀的项目经理应该具备的能力
  13. 车牌识别算法实践(二):基础算法
  14. java8--Lambda表达式
  15. 在word表格中如何快速清除表格内容?
  16. PS CS6视频剪辑基本技巧(二)视频剪接和添加图片
  17. MySQL数据库——MySQL INSERT:插入数据(添加数据)
  18. qlv视频转换器免费版_腾讯视频素材下载和转换教程
  19. 机器学习和深度学习综述
  20. 组装网游服务器,网游服务器的搭建

热门文章

  1. java常见的内存泄漏
  2. mysql中日期相减_如何使用MySQL数据库
  3. 两个时间计算毫秒在线_蹲坑英语时间之in a jiffy
  4. Linux 面试最高频的 5 个基本问题!
  5. 如何无缝迁移 SpringCloud/Dubbo 应用到 Serverless 架构
  6. workerman在linux上怎么运行,linux系统中workerman的安装步骤
  7. string截取某个字符串之前的_python String字符串操作
  8. yii 全选 php,yii2中gridview使用技巧小结(四)——全选等批量操作
  9. python的填充色怎么弄_python中如何给图形填充颜色
  10. httpd是mysql_在Centos下安装httpd、php、Mysql并配置(转载)