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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
编写Python脚本来获取Google搜索结果的示例
May 04 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
Python中 Lambda表达式全面解析
Nov 28 Python
详解Python里使用正则表达式的ASCII模式
Nov 02 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
Python generator生成器和yield表达式详解
Aug 08 Python
django-rest-swagger的优化使用方法
Aug 29 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
Python正则表达式中flags参数的实例详解
Apr 01 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
图书管理程序(二)
2006/10/09 PHP
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
利用python获取Ping结果示例代码
2017/07/06 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python是什么 Python的用处
2020/05/26 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
电焊工工作岗位职责
2014/02/06 职场文书
物控部经理职务说明书
2014/02/25 职场文书
公司授权委托书
2014/04/04 职场文书
小学生校园广播稿
2014/09/28 职场文书
2015年宣传工作总结
2015/04/08 职场文书
会议通知格式范文
2015/04/15 职场文书
2019年教师入党申请书
2019/06/27 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS