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入门教程
Feb 08 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
Python中将字典转换为列表的方法
Sep 21 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
Python3中详解fabfile的编写
Jun 24 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
pycharm配置QtDesigner的超详细方法
Jan 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与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
php面向对象重点知识分享
2019/09/27 PHP
javascript中window.event事件用法详解
2012/12/11 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
微信小程序 如何获取网络状态
2019/07/26 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Python实现多进程的四种方式
2019/02/22 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
通过实例了解python property属性
2019/11/01 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
借款协议书
2014/04/12 职场文书
工地质量标语
2014/06/12 职场文书
高一作文之乐趣
2019/11/21 职场文书
Android存储中最基本的文件存储方式
2022/04/30 Java/Android
Nginx 匹配方式
2022/05/15 Servers
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL