start() 方法来启动进程,真正实现了多进程运行,这时无需等待 run 方法体代码执行完毕而直接继续执行下面的代码:调用 Process 类的 start() 方法来启动一个进程,这时此进程处于就绪(可运行)状态,并没有运行,一旦得到 cpu 时间片,就开始执行 run() 方法,这里方法 run() 称为进程体,当进程结束后,不可以重新启动。

run() 方法只是类的一个普通方法,如果直接调用 run 方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待 run 方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。

验证:

import multiprocessing

import time

def download():

print('开始下载')

for i in range(3):

print('-----1------')

time.sleep(1)

def upload():

print('上传完毕')

for i in range(3):

print('-----2------')

time.sleep(1)

def main():

#queue = multiprocessing.Queue() #实例化队列

process1 = multiprocessing.Process(target=upload)

process2 = multiprocessing.Process(target=download)

process1.run()

process2.run()

if __name__ == '__main__':

main()

运行结果:

上传完毕

-----2------

-----2------

-----2------

开始下载

-----1------

-----1------

-----1------

如果使用start方法:

import multiprocessing

import time

def download():

print('开始下载')

for i in range(3):

print('-----1------')

time.sleep(1)

def upload():

print('上传完毕')

for i in range(3):

print('-----2------')

time.sleep(1)

def main():

#queue = multiprocessing.Queue() #实例化队列

process1 = multiprocessing.Process(target=upload)

process2 = multiprocessing.Process(target=download)

# process1.run()

# process2.run()

process1.start()

process2.start()

if __name__ == '__main__':

main()

执行结果:

上传完毕

-----2------

开始下载

-----1------

-----2------

-----1------

-----2------

-----1------

原文链接:https://blog.csdn.net/LCY133/article/details/107173364

python start方法_进程方法 run和start的区别相关推荐

  1. java8 默认方法_默认方法:Java 8的无名英雄

    java8 默认方法 几周前,我写了一个博客,说开发人员学习新语言是因为它们很酷. 我仍然坚持这个主张,因为关于Java 8的事情真的很酷. 尽管毫无疑问,该节目的明星是添加了Lambdas和将函数提 ...

  2. python创建线程_多种方法实现 python 线程池

    最近在做一个爬虫相关的项目,单线程的整站爬虫,耗时真的不是一般的巨大,运行一次也是心累,,,所以,要想实现整站爬虫,多线程是不可避免的,那么python多线程又应该怎样实现呢?这里主要要几个问题(关于 ...

  3. python dcf估值_估值方法梳理 把CFA二级书本中提及的企业估值方法在白板上全列了一遍。 一、 静心思考,绝对估值法(DCF、FCFF、FCFE、RI)... - 雪球...

    来源:雪球App,作者: 写Python的田田,(https://xueqiu.com/7298445784/85273603) 把CFA二级书本中提及的企业估值方法在白板上全列了一遍. 一. 静心思 ...

  4. python正则化函数_正则化方法及Python实现

    正则化有助于克服过度拟合模型的问题.过度拟合是偏差和方差平衡的概念.如果过度拟合,机器学习模型将具有较低的准确性.当我们的机器学习模型试图从数据中学习更多属性时,就会添加来自训练数据的噪声.这里的噪声 ...

  5. python论文排版_科研方法 | 论文排版攻略,请收藏!

    征稿 当我们写学术论文尤其是毕业论文时,必然会涉及到论文格式排版问题.最常用的莫过于 Microsoft Office 系列了,其次便是国产的 WPS,如果时理工类论文或者社科类论文中涉及公式或者图表 ...

  6. python 凯利公式_蒙特卡罗方法验证凯利公式

    说明 本文受知乎陈小米启发而写.有兴趣的朋友可以移步这里. 本文的代码完全是本人所撸. 问题描述 假想一个游戏.赢的概率是60%,输的概率40%.入场费随意交.如果赢了获得2倍的入场费金额(1赔1), ...

  7. 求解决方法_解决方法

    求解决方法 Relationship management is one of the determining factors in the business health. One of the m ...

  8. python绑定内核_进程绑定CPU

    进程绑定CPU 本文所讲述内容仅适用于linux环境 1. CPU亲和性 CPU亲和性是指进程在某个给定的CPU上长时间运行,尽可能少的迁移到其他处理器的倾向性.linux内核的进程调度器天生就具有这 ...

  9. java 底层方法_底层方法测试--【Java】

    *********毫秒为单位********************** //开始时间 long beginTime=System.currentTimeMillis(); //结束时间 long e ...

最新文章

  1. docker配置cdn-容器内可以通过域名访问
  2. 黑客组织利用El Machete窃取全球政府超过100G数据
  3. mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
  4. sublimeText3 工具
  5. 梳理各算法基础应用及场景
  6. 趣学python3(26)-pygame-蛇身运动
  7. 1.多彩的幕布CCLayerColor,CCLayerGradient
  8. 监控聚币网行情 并实时发送到微信
  9. java object转泛型_JAVA快速入门——基本结构、基本数据类型
  10. (2)verilog语言编写打两拍
  11. 【Java数据结构与算法】第十七章 二分查找(非递归)和分治算法(汉诺塔)
  12. “Hyperledger Fabric 是假区块链!”
  13. 数千万智能手机集体脱机?罪魁祸首是……
  14. 遥感基础编程语言IDL介绍
  15. 页面添加蒙版,但是不影响页面其他事件响应
  16. 3DMAx Panda Directx Exporter 导出 X插件
  17. calc桌面计算机,Calc1(桌面计算器)
  18. html中图片鼠标滑动的效果,JS DOM实现鼠标滑动图片效果
  19. css保持图片原始比例
  20. MNIST手写体数字识别数据集

热门文章

  1. 爬取唯美女生网站上所有小姐姐的照片
  2. 计算机二级考过律,计算机二级考试考完后的这些事情你知道吗?
  3. 打开模拟器上app的文件位置方法
  4. Photoshop生成320*320像素图片
  5. java定义私有变量_Java Reflection(七):私有变量和私有方法
  6. 思科 Packet Tracer 实验六 路由协议基本配置
  7. 在IDEA中如何取消打过的断点
  8. YGG 与 Thirdverse 达成合作,将《足球小将》IP 带入 Web3
  9. 最先进的智能采茶机器人_智能采茶机器人关键技术研究
  10. 超美二次元响应式引导页源码