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中writelines()方法的使用
May 25 Python
Python中字典的setdefault()方法教程
Feb 07 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
python批量图片处理简单示例
Aug 06 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
javascript 写类方式之三
2009/07/05 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
ext 代码生成器
2009/08/07 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
如何进行Linux分区优化
2013/02/12 面试题
Overload和Override的区别
2012/09/02 面试题
个人自荐书
2013/12/20 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
罚款通知怎么写
2015/04/22 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
信息技术国培研修日志
2015/11/13 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫