Python多线程threading创建及使用方法解析

 更新时间:2020年06月17日 09:31:15   作者:吞风吻雨ii  
这篇文章主要介绍了Python多线程threading创建及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、线程创建方法

1. 普通创建

import threading
def run(name):
  for i in range(3):
    print(name)
if __name__ == '__main__':
  t1 = threading.Thread(target=run, args=("t1",))
  t2 = threading.Thread(target=run, args=("t2",))
  t1.start()
  t2.start()

--------------------------------------------
t1
t2
t2
t1
t2
t1

2. 自定义线程类

import threading
class MyThread(threading.Thread):
  def __init__(self, name):
    super(MyThread, self).__init__()
    self.name = name
  def run(self):
    for i in range(3):
      print(self.name)
if __name__ == "__main__":
  t1 = MyThread("t1")
  t2 = MyThread("t2")
  t1.start()
  t2.start()

二、线程的使用

1.守护线程

子线程会随着主线程的结束而结束

t = threading.Thread(target=run, args=("t1",))
t.setDaemon(True) # 把子进程设置为守护线程,必须在start()之前设置
t.start()

2.主线程等待子线程结束

t = threading.Thread(target=run, args=("t1",))
t.setDaemon(True)
t.join() # 设置主线程等待子线程结束
t.start()

3.互斥锁

from threading import Thread,Lock
n = 10
def run():
  global n
  locker.acquire()
  n -= 1
  locker.release()

if __name__ == '__main__':
  locker = Lock()
  t1 = Thread(target=run)
  t2 = Thread(target=run)
  t1.start()
  t2.start()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Django中select_related和prefetch_related的用法与区别详解

    Django中select_related和prefetch_related的用法与区别详解

    在实际的开发中,模型之间经常存在复杂的关联关系,下面这篇文章主要给大家介绍了关于Django中select_related和prefetch_related的用法与区别的相关资料,需要的朋友可以参考下
    2022-11-11
  • 解决Keras TensorFlow 混编中 trainable=False设置无效问题

    解决Keras TensorFlow 混编中 trainable=False设置无效问题

    这篇文章主要介绍了解决Keras TensorFlow 混编中 trainable=False设置无效问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 对python数据切割归并算法的实例讲解

    对python数据切割归并算法的实例讲解

    今天小编就为大家分享一篇对python数据切割归并算法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python实现新年愿望代码雨效果

    Python实现新年愿望代码雨效果

    新的一年又要来了,这篇文章主要为大家详细介绍了如何利用Python实现新年愿望代码雨的动画效果。文中的示例代码讲解详细,感兴趣的可以动手尝试一下
    2023-01-01
  • Python使用cookielib模块操作cookie的实例教程

    Python使用cookielib模块操作cookie的实例教程

    cookielib模块经常被用来和urllib等模块配合来制作爬虫或者第三方SNS客户端等程序,比如这里我们就将举一个使用cookie来发送登录信息登录人人网的例子,well,一起来看一下Python使用cookielib模块操作cookie的实例教程
    2016-07-07
  • PyQt5组件读取参数的实例

    PyQt5组件读取参数的实例

    今天小编就为大家分享一篇PyQt5组件读取参数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python高级用法总结

    Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用。本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式、迭代器和生成器、装饰器
    2018-05-05
  • 基于python实现开箱即用的桌面时钟

    基于python实现开箱即用的桌面时钟

    这篇文章主要为大家详细介绍了如何基于python实现开箱一个即用的桌面时钟,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考下
    2023-12-12
  • python如何求取指定范围内的质数

    python如何求取指定范围内的质数

    这篇文章主要介绍了python如何求取指定范围内的质数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python面向对象总结及类与正则表达式详解

    Python面向对象总结及类与正则表达式详解

    Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。这篇文章主要介绍了Python面向对象总结及类与正则表达式 ,需要的朋友可以参考下
    2019-04-04

最新评论