python:3.8.10官方文档学习

1:基于线程的并行

在 CPython 中,由于存在 全局解释器锁,同一时刻只有一个线程可以执行 Python 代码(虽然某些性能导向的库可能会去除此限制)。
如果你想让你的应用更好地利用多核心计算机的计算资源,推荐你使用 multiprocessing 或 concurrent.futures.ProcessPoolExecutor
但是,如果你想要同时运行多个 I/O 密集型任务,则多线程仍然是一个合适的模型

多进程并发适合:
I/O 密集型任务

1:threading.active_count()      返回当前存活的 Thread 对象的数量。 返回值与 enumerate() 所返回的列表长度一致
2:threading.current_thread()     返回当前对应调用者的控制线程的 Thread 对象。如果调用者的控制线程不是利用 threading 创建,会返回一个功能受限的虚拟线程对象。
3:threading.excepthook(args/)   处理由 Thread.run() 引发的未捕获异常。
4:threading.get_ident()        返回当前线程的 “线程标识符”。它是一个非零的整数,它的值没有直接含义,主要是用作 magic cookie,
                        比如作为含有线程相关数据的字典的索引。线程标识符可能会在线程退出,新线程创建时被复用
5:threading.get_native_id()     
返回内核分配给当前线程的原生集成线程 ID,这是一个非负整数。
                        它的值可被用来在整个系统中唯一地标识这个特定线程(直到线程终结,在那之后该值可能会被 OS 回收再利用)。
6:threading.enumerate()        以列表形式返回当前所有存活的 Thread 对象。 该列表包含守护线程,
                        current_thread()当前运行的线程创建的虚拟线程对象和主线程。它不包含已终结的线程和尚未开始的线程
7:threading.main_thread()      返回主 Thread 对象。一般情况下,主线程是Python解释器开始时创建的线程(返回主线程)
8:threading.settrace(func)     为所有 threading 模块开始的线程设置追踪函数。在每个线程的 run() 方法被调用前,func 会被传递给 sys.settrace() 性能测试使用使用
9:threading.setprofile(func)     为所有 threading 模块开始的线程设置性能测试函数。在每个线程的 run() 方法被调用前,func 会被传递给 sys.setprofile()  
10:threading.stack_size([size])   返回创建线程时使用的堆栈大小。可选参数 size 指定之后新建的线程的堆栈大小,
                        而且一定要是0(根据平台或者默认配置)或者最小是32,768(32KiB)的一个正整数。如果 size 没有指定,默认是0。
                        如果不支持改变线程堆栈大小,会抛出 RuntimeError 错误。如果指定的堆栈大小不合法,会抛出 ValueError 错误并且不会修改堆栈大小。
                        32KiB是当前最小的能保证解释器有足够堆栈空间的堆栈大小。需要注意的是部分平台对于堆栈大小会有特定的限制,
                        例如要求大于32KiB的堆栈大小或者需要根据系统内存页面的整数倍进行分配
                         应当查阅平台文档有关详细信息(4KiB页面比较普遍,在没有更具体信息的情况下,建议的方法是使用4096的倍数作为堆栈大小)
11:threading.TIMEOUT_MAX        阻塞函数( Lock.acquire()RLock.acquire()Condition.wait(), ...)中形参timeout 允许的最大值。
                        传入超过这个值的 timeout 会抛出 OverflowError 异常
                        print(threading.TIMEOUT_MAX)    4294967.0
                        最多只允许阻塞这么长时间


 

posted @ 2021-05-12 20:34  至高无上10086  阅读(812)  评论(0编辑  收藏  举报