python开发之thread线程基础实例入门


Posted in Python onNovember 11, 2015

本文实例讲述了python开发之thread线程基础。分享给大家供大家参考,具体如下:

说到线程,我们要知道啥是串行,啥是并行程序

举个例子:

串行程序,就是一个一个的执行程序

#python threading
import time
'''
  每一秒中,输出:this is a demo!
'''
def serial():
  '''串行输出'''
  time.sleep(1)
  print('this is a demo!')
def main():
  for i in range(5):
    serial()
if __name__ == '__main__':
  main()

运行结果如下:

>>> 
this is a demo!
this is a demo!
this is a demo!
this is a demo!
this is a demo!
>>>

并行程序,就是很多个程序在同一时间(宏观)一起执行

#python threading
import threading
import time
'''
  并行执行,输出:Good!Good!Good!Good!Good!
'''
def parallel():
  '''并行输出'''
  time.sleep(1)
  print('Good!')
def main():
  for i in range(5):
    t = threading.Thread(target=parallel)
    t.start()
if __name__ == '__main__':
  main()

当然我们通过执行程序,可以知道,并行程序要比串行程序执行的要快....

我们也可以获取到当前的线程及个数:

#python threading
import threading
import time
'''
  并行执行,输出:
  [<Thread(Thread-2, started 3480)>, <Thread(Thread-1, started 660)>,
  <Thread(SockThread, started daemon 2920)>, <Thread(Thread-3, started 916)>,
  <Thread(Thread-4, started 3476)>, <_MainThread(MainThread, started 3964)>,
  <Thread(Thread-5, started 2060)>]
  存在的线程数 : 7
  Good!Good!Good!Good!Good!
'''
def parallel():
  '''并行输出'''
  time.sleep(1)
  print('Good!')
def main():
  for i in range(5):
    t = threading.Thread(target=parallel)
    t.start()
if __name__ == '__main__':
  main()
  print(threading.enumerate())
  print('存在的线程数 : %d'%threading.active_count())

运行结果如下:

>>> 
[<Thread(SockThread, started daemon 15424)>, <Thread(Thread-3, started 15840)>, <Thread(Thread-1, started 10884)>, <Thread(Thread-2, started 14512)>, <Thread(Thread-4, started 13204)>, <_MainThread(MainThread, started 12924)>, <Thread(Thread-5, started 15476)>]
存在的线程数 : 7
>>> Good!Good!Good!Good!Good!

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python encode和decode的妙用
Sep 02 Python
wxPython中文教程入门实例
Jun 09 Python
python计算N天之后日期的方法
Mar 31 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
Python中的asyncio代码详解
Jun 10 Python
Python 调用 Windows API COM 新法
Aug 22 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
python 合并多个excel中同名的sheet
Jan 22 Python
用Python监控你的朋友都在浏览哪些网站?
May 27 Python
python开发之thread实现布朗运动的方法
Nov 11 #Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 #Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 #Python
Python复制文件操作实例详解
Nov 10 #Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 #Python
Python 文件管理实例详解
Nov 10 #Python
Python list操作用法总结
Nov 10 #Python
You might like
生成静态页面的PHP类
2006/11/25 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
JavaScript对象学习经验整理
2013/10/12 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
解析vue中的$mount
2017/12/21 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python实现身份证号码解析
2015/09/01 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
python中rb含义理解
2020/06/18 Python
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
最常使用的求职信
2014/05/25 职场文书
音乐节策划方案
2014/06/09 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
信仰纪录片观后感
2015/06/08 职场文书
羊脂球读书笔记
2015/06/30 职场文书
毕业酒会致辞
2015/07/29 职场文书
DE1103使用报告
2022/04/05 无线电
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS