python threading

thrading

这个模块在较低级的模块 _thread 基础上建立较高级的线程接口。

thrading.Thread 线程对象

threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
调用这个构造函数时,必需带有关键字参数。参数如下:

  • group 应该为 None;为了日后扩展 ThreadGroup 类实现而保留。
  • target 是用于 run() 方法调用的可调用对象。默认是 None,表示不需要调用任何方法。
  • name 是线程名称。默认情况下,由 "Thread-N" 格式构成一个唯一的名称,其中 N 是小的十进制数。
  • args 是用于调用目标函数的参数元组。默认是 ()
  • kwargs 是用于调用目标函数的关键字参数字典。默认是 {}
  • 如果不是 Nonedaemon 参数将显式地设置该线程是否为守护模式。 如果是 None (默认值),线程将继承当前线程的守护模式属性。
  • 如果子类型重载了构造函数,它一定要确保在做任何事前,先发起调用基类构造器(Thread.__init__())。
    在 3.3 版更改: 加入 daemon 参数。
start()
run()
join(timeout=None)
name
ident
is_alive()
isDaemon()

threading下可直接调用的函数

  • threading.active_count()
    返回当前存活的线程类 Thread 对象。返回的计数等于 enumerate() 返回的列表长度。

    import threading
    print(threading.active_count())
    # 运行结果:1,即为主线程
    
  • threading.current_thread()
    返回当前对应调用者的控制线程的 Thread 对象。如果调用者的控制线程不是利用 threading 创建,会返回一个功能受限的虚拟线程对象。

    print(threading.current_thread())
    # 运行结果 <_MainThread(MainThread, started 6712)>
    
  • threading.get_ident()
    返回当前线程的 “线程标识符”。它是一个非零的整数。它的值没有直接含义,主要是用作 magic cookie,比如作为含有线程相关数据的字典的索引。线程标识符可能会在线程退出,新线程创建时被复用。

    print(threading.get_ident())
    # 6712
    

python v3.3新增

  • threading.enumerate()
    以列表形式返回当前所有存活的 Thread 对象。 该列表包含守护线程,current_thread() 创建的虚拟线程对象和主线程。它不包含已终结的线程和尚未开始的线程。

  • threading.main_thread()
    返回主 Thread 对象。一般情况下,主线程是Python解释器开始时创建的线程。

python v3.4新增

  • threading.settrace(func) -
    为所有 threading 模块开始的线程设置追踪函数。在每个线程的 run() 方法被调用前,func 会被传递给 sys.settrace()

  • threading.setprofile(func)
    为所有 threading 模块开始的线程设置性能测试函数。在每个线程的 run() 方法被调用前,func 会被传递给 sys.setprofile()

  • threading.stack_size([size])
    返回创建线程时用的堆栈大小。

  • 常量:threading.TIMEOUT_MAX
    阻塞函数( Lock.acquire(), RLock.acquire(), Condition.wait(), ...)中形参 timeout 允许的最大值。传入超过这个值的 timeout 会抛出 OverflowError 异常。

参考文档

[threading 基于线程的并行]
[threading 源码]

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. threading下的函数 1.1 threading.active_count() 返回当前处于alive...
    MoonMonsterss阅读 3,283评论 0 0
  • 现翻译了python3.5中threading模块中的部分类,关于锁以及后续的一些类会逐步更新(更新在本篇文章中)...
    jockerMe阅读 8,155评论 1 5
  • 【threading模块详解】 模块基本方法 该模块定了的方法如下:threading.active_count(...
    奕剑听雨阅读 4,714评论 0 0
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,156评论 0 9
  • 线程 操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有...
    go以恒阅读 5,622评论 0 6

友情链接更多精彩内容