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 fileinput模块使用介绍
Nov 30 Python
使用Python生成XML的方法实例
Mar 21 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python中常见的异常总结
Feb 20 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
python已协程方式处理任务实现过程
Dec 27 Python
python实现简单坦克大战
Mar 27 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 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使用PDO方法详解
2014/12/27 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
Python实现的直接插入排序算法示例
2018/04/29 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python中的json总结
2018/10/11 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
python实现ip代理池功能示例
2019/07/05 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
python中return不返回值的问题解析
2020/07/22 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
小学清明节活动方案
2014/03/08 职场文书
七夕情人节促销方案
2014/06/07 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
十八大观后感
2015/06/12 职场文书
欢送会主持词
2015/07/01 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
关于Vue中的options选项
2022/03/22 Vue.js