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实现巡检系统(solaris)示例
Apr 02 Python
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Python 操作MySQL详解及实例
Apr 30 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
Python实现简单http服务器
Apr 12 Python
Python简单获取二维数组行列数的方法示例
Dec 21 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
python实现人性化显示金额数字实例详解
Sep 25 Python
python调用win32接口进行截图的示例
Nov 11 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版本号
2006/10/09 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
JavaScript内核之基本概念
2011/10/21 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python实现简单图片物体标注工具
2019/03/18 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
三下乡活动方案
2014/01/31 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
博士生求职信
2014/07/06 职场文书
放飞理想演讲稿
2014/09/09 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
书法社团活动总结
2015/05/07 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL