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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python中字典和JSON互转操作实例
Jan 19 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
Python TestCase中的断言方法介绍
May 02 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
原生python实现knn分类算法
Oct 24 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
python logging通过json文件配置的步骤
Apr 27 Python
一篇文章弄懂Python中的内建函数
Aug 07 Python
python热力图实现的完整实例
Jun 25 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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
2014过年倒计时示例
2014/01/31 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
offsetParent 算法分析
2010/04/05 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Python程序设计入门(3)数组的使用
2014/06/16 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
Python实现Restful API的例子
2019/08/31 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
销售类求职信
2014/06/13 职场文书
素质教育标语
2014/06/27 职场文书
护士辞职信怎么写
2015/02/27 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL