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实现的数据结构与算法之队列详解
Apr 22 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
django加载本地html的方法
May 27 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
python redis 删除key脚本的实例
Feb 19 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 Python
基于python实现地址和经纬度转换
May 19 Python
基于Python实现简单学生管理系统
Jul 24 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
4种方法python批量修改替换列表中元素
Apr 07 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 smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
js图片预加载示例
2014/04/30 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
Python网络编程 Python套接字编程
2017/09/13 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
softmax及python实现过程解析
2019/09/30 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
python map比for循环快在哪
2020/09/21 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
聚美优品的广告词
2014/03/14 职场文书
个性婚礼策划方案
2014/05/17 职场文书
减负增效提质方案
2014/05/23 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL