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与shell的3种交互方式介绍
Apr 11 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
Python 专题三 字符串的基础知识
Mar 19 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python pycharm的安装及其使用
Oct 11 Python
python算的上脚本语言吗
Jun 22 Python
python实现canny边缘检测
Sep 14 Python
Python urllib库如何添加headers过程解析
Oct 05 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/10/09 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
原生js实现购物车
2020/09/23 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
如何基于线程池提升request模块效率
2020/04/18 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
一套VC试题
2015/01/23 面试题
文明礼仪事迹材料
2014/01/09 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
公司授权委托书范文
2014/08/02 职场文书
运动会演讲稿50字
2014/08/25 职场文书
组工干部对照检查材料
2014/08/25 职场文书
2014年教研工作总结
2014/12/06 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
大专护理专业自荐信
2015/03/25 职场文书
入党培养人考察意见
2015/06/08 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
php中pcntl_fork详解
2021/04/01 PHP
一文解答什么是MySQL的回表
2022/08/05 MySQL
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技