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()

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

相关文章

  • 详解Selenium 元素定位和WebDriver常用方法

    详解Selenium 元素定位和WebDriver常用方法

    这篇文章主要介绍了详解Selenium 元素定位和WebDriver常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python制作罗盘时钟效果

    python制作罗盘时钟效果

    这篇文章主要介绍了python制作罗盘时钟效果,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • 查看端口并杀进程python脚本代码

    查看端口并杀进程python脚本代码

    今天小编就为大家分享一篇查看端口并杀进程python脚本代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Pytest多环境切换的常见方法介绍

    Pytest多环境切换的常见方法介绍

    Pytest 作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进行选择
    2025-04-04
  • python+opencv 读取文件夹下的所有图像并批量保存ROI的方法

    python+opencv 读取文件夹下的所有图像并批量保存ROI的方法

    今天小编就为大家分享一篇python+opencv 读取文件夹下的所有图像并批量保存ROI的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python自动化Office文档处理全攻略

    Python自动化Office文档处理全攻略

    在日常办公中,处理Word、Excel和PDF等Office文档是再常见不过的任务,手动操作这些文档不仅耗时耗力,还容易出错,幸运的是,Python提供了丰富的库,使得自动化处理这些文档变得轻松高效,本文将通过通俗易懂的表达方式,带你领略Python自动化Office文档处理的魅力
    2025-02-02
  • Sublime Text4 配置 Python3 环境、代码提示、编译报错的解决方案

    Sublime Text4 配置 Python3 环境、代码提示、编译报错的解决方案

    这篇文章主要介绍了Sublime Text4 配置 Python3 环境、代码提示、编译报错教程,通过图文并茂的形式给大家介绍了配置自动代码提示的方法,需要的朋友可以参考下
    2022-01-01
  • 使用Kivy将python程序打包为apk文件

    使用Kivy将python程序打包为apk文件

    本文给大家分享的是使用Kivy将python程序打包为apk文件的方法,包括安装步骤及相关代码,有需要的小伙伴可以参考下
    2017-07-07
  • Pythony运维入门之Socket网络编程详解

    Pythony运维入门之Socket网络编程详解

    这篇文章主要介绍了Pythony运维入门之Socket网络编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python获取系统内存占用信息的实例方法

    python获取系统内存占用信息的实例方法

    在本篇文章里小编给大家整理的是关于python获取系统内存占用信息的实例方法,有需要的朋友们可以参考学习下。
    2020-07-07

最新评论