cpu在执行一个子线程的时候遇到sleep就会利用这段停顿时间去执行另一个子线程。两个子线程谁先跳出sleep就执行谁。
import threadingimport time

start = time.time()

def foo(n):  print("foo%s" % n)      # 1执行  time.sleep(2)  # 停2秒     print("foo执行结束")      # 执行

def bar(n):  print("bar%s" % n)      # 2 执行  time.sleep(1)  # 停1秒     print("bar执行结束")      # 3 执行

t1 = threading.Thread(target=foo, args=(1,))  # 子线程1t2 = threading.Thread(target=bar, args=(2,))  # 子线程2

t1.start()t2.start()

print("----------")t1.join()  # 加join方法t2.join()  # 加join方法

end = time.time()print(end-start)  # 两个子线程执行时间

#####运行结果#######foo1bar1----------bar执行结束foo执行结束2.014805555343628

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

import threading线程进程相关推荐

  1. 多线程-threading和进程VS线程(python 版)

    多线程-threading python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用 1. 使用threading模块 ...

  2. Python之进程+线程+协程(进程的本质 与 threading线程模块)

    文章目录 基本概念 threading线程模块 本篇开始分析Python中的并发程序,也就是进程.线程.协程序的使用.由于是用自己的语言总结的,因此比较大白话,或者叫通俗易懂.而且很多细节方面没有具体 ...

  3. 线程的创建 验证线程之间共享数据 守护线程 线程进程效率对比 锁 死锁 递归锁...

    线程(from threading import Thread):CPU调度的最小单位 线程的两种创建方式:方式一: 1 from threading import Thread 2 def f1(i ...

  4. Python的线程/进程间通讯对象分析

    2019独角兽企业重金招聘Python工程师标准>>> Python提供了一系列的对象支持线程/进程间的通讯: Lock RLock Condition Semaphone Boun ...

  5. Python学习之==线程进程

    一.什么是线程(thread) 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一个线程指的是进程中一个单一顺序的控制流,一个进程中可以包含多个线程,每条线程并行 ...

  6. GIL与线程进程小知识点

    一 .GIL全局解释器 GIL是一个互斥锁:保证数据的安全(以牺牲效率来换取数据的安全) 阻止同一个进程内多个线程同时执行(不能并行但是能够实现并发) 并发:看起来像同时进行的 GIL全局解释器存在的 ...

  7. python的线程如何启用和结束_python线程进程

    操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存,磁盘,打印机,键盘,鼠标显示器,网络接口以及各种其他输入 输出设备组成的复杂系统,每位程序员不可能掌握所有系统实现的细节 ...

  8. python协程和线程_python之并发编程(线程\进程\协程)

    一.进程和线程 1.进程 假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源.是 ...

  9. python apply_async死锁_python之并发编程(线程\进程\协程)

    一.进程和线程 1.进程假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源.是不 ...

最新文章

  1. 详解Google第二代TPU 既能推理又能训练 性能霸道
  2. Rsync+sersync同步配置
  3. java根据enum某个属性值获取枚举项
  4. 安装icephp 记
  5. 使用xsodata文件将SAP HANA CDS view暴露成OData服务
  6. jsp - 9 内置对象application详解
  7. 指针变量的声明、地址相关运算--“*”和“”
  8. Js+XML 操作 [ZT]
  9. Cocos2dx 下对sqlite3 的简单封装
  10. 我的世界启动时要Java_我的世界启动时Java出现日志怎么办
  11. 旷视天元开源图片对比工具 MegSpot,助力图像算法研发
  12. IntelliJ IDEA 2017完全破解方法
  13. 深度学习在OCR中的应用
  14. 好用的影子系统软件,系统辅助工具
  15. Postman启动慢一直加载解决方案
  16. 破解受限制的XLSM文档
  17. 华为交换机S5720-EI堆叠
  18. 公众号自动回复不生效php,php,微信公众平台开发者_微信公众号开发者自动回复设置没反应,php,微信公众平台开发者 - phpStudy...
  19. PromptBERT: Improving BERT Sentence Embeddings with Prompts
  20. Echart佛山五区地图-动态地图-江西地图

热门文章

  1. 多iframe下的html同名id,获得同级iframe页面的指定ID元素的几种实现方法
  2. 玩出花,只用文本就能干CV的活!
  3. 升级! Facebook 模型全部迁移至 PyTorch 框架
  4. 小米集团2021未来星专项招聘计划!
  5. 可解释性与deep learning的发展
  6. delphi 中如果不进行 closehandle 会怎么样_报考八一农大的十一大选择之七|带你走进不一样的“信息世界”...
  7. 组网胖模式_胖瘦AP组网优劣对比,你知道吗?
  8. opencv光流例程_OpenCV 4.4 发布!新增YOLOv4 和 EfficientDet 推断支持
  9. 服务器消除报警信息,巧妙设置让故障服务器自动报警的小技巧
  10. 值得关注的AI信息安全公司