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 判断自定义对象类型
Mar 21 Python
python3读取MySQL-Front的MYSQL密码
May 03 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
Python基于scipy实现信号滤波功能
May 08 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
解决Python对齐文本字符串问题
Aug 28 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
python os模块常用的29种方法使用详解
Jun 02 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
python字符串的多行输出的实例详解
Jun 08 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
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
php将数据库导出成excel的方法
2010/05/07 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
javascript每日必学之继承
2016/02/23 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
python实时分析日志的一个小脚本分享
2017/05/07 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
员工工作能力评语
2014/12/31 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python