python开发之thread线程基础实例入门

 更新时间:2015年11月11日 10:34:16   作者:Hongten  
这篇文章主要介绍了python开发之thread线程基础,以三个实例形式分析了Python中thread线程的基本使用方法,涉及串行与并行程序的执行原理及线程的操作技巧,需要的朋友可以参考下

本文实例讲述了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数据分析之使用scikit-learn构建模型

    Python数据分析之使用scikit-learn构建模型

    这篇文章主要介绍了Python数据分析之使用scikit-learn构建模型,sklearn提供了model_selection模型选择模块、preprocessing数据预处理模块、decompisition特征分解模块,更多相关内容需要朋友可以参考下面文章内容
    2022-08-08
  • 简单谈谈Python中函数的可变参数

    简单谈谈Python中函数的可变参数

    和C语言一样,Python中也有可变参数函数,即一个函数可以接收多个参数,而这些参数的个数在函数调用之前事先是不知道的。下面这篇文章我们来介绍下python中的可变参数
    2016-09-09
  • Pycharm创建项目时如何自动添加头部信息

    Pycharm创建项目时如何自动添加头部信息

    这篇文章主要介绍了Pycharm创建项目时 自动添加头部信息,需要的朋友可以参考下
    2019-11-11
  • Python优雅实现二分查找的示例详解

    Python优雅实现二分查找的示例详解

    二分查找是一种高效的搜索算法,用于在有序数组中查找特定元素,本文将介绍二分查找的基本原理,并通过Python代码进行详细讲解,需要的可以参考一下
    2023-07-07
  • python基于BeautifulSoup实现抓取网页指定内容的方法

    python基于BeautifulSoup实现抓取网页指定内容的方法

    这篇文章主要介绍了python基于BeautifulSoup实现抓取网页指定内容的方法,涉及Python使用BeautifulSoup模块解析html网页的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • pytorch从csv加载自定义数据模板的操作

    pytorch从csv加载自定义数据模板的操作

    这篇文章主要介绍了pytorch从csv加载自定义数据模板的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 学习python的前途 python挣钱

    学习python的前途 python挣钱

    在本文里我们给大家整理了关于学习python的前途以及python挣钱的方法整理,有兴趣的朋友们阅读下。
    2019-02-02
  • python中的sys.stdout重定向解读

    python中的sys.stdout重定向解读

    这篇文章主要介绍了python中的sys.stdout重定向,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python模块、包和发布模块示例代码

    Python模块、包和发布模块示例代码

    模块是python程序架构的一个核心概念,模块名同样也是一个标识符,需要符合标识符的命名规则,接下来通过本文给大家讲解Python模块、包和发布模块,需要的朋友可以参考下
    2023-01-01
  • 使用opencv识别图像红色区域,并输出红色区域中心点坐标

    使用opencv识别图像红色区域,并输出红色区域中心点坐标

    这篇文章主要介绍了使用opencv识别图像红色区域,并输出红色区域中心点坐标,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06

最新评论