pyefun.核心易函数支持库.线程操作 module¶
提示
线程操作有线程池
- class pyefun.核心易函数支持库.线程操作.线程[源代码]¶
基类:
object
- 取运行中的线程对象(**kwargs)¶
- 取运行的线程数(**kwargs)¶
- 启动线程(**kwargs)¶
- 等待线程结束(**kwargs)¶
- 线程是否在运行(**kwargs)¶
- pyefun.核心易函数支持库.线程操作.线程_取当前线程()[源代码]¶
返回与Thread调用方的控制线程相对应的当前对象。如果未通过threading模块创建调用者的控制 线程,则返回功能有限的虚拟线程对象。
- pyefun.核心易函数支持库.线程操作.线程_取所有活动对象()[源代码]¶
返回Thread当前所有活动对象的列表。该列表包括守护线程,由创建的伪线程对象 current_thread()和主线程。它不包括终止的线程和尚未启动的线程。
- pyefun.核心易函数支持库.线程操作.线程_取线程标识符()[源代码]¶
返回当前线程的“线程标识符”。这是一个非零整数。它的值没有直接的意义。它旨在用作魔术Cookie,例如用于索引线程特定数据的字典。当一个线程退出并创建另一个线程时,线程标识符可以被回收。
- class pyefun.核心易函数支持库.线程操作.线程池(最大线程数量, 投递任务时阻塞=True, 线程名称前缀='', 线程初始化函数=None, 初始化函数参数=())[源代码]¶
基类:
concurrent.futures.thread.ThreadPoolExecutor
当有大量并发任务需要处理时,再使用传统的多线程就会造成大量的资源创建销毁导致服务器效率的下降。这时候,线程池就派上用场了。线程池技术为线程创建、销毁的开销问题和系统资源不足问题提供了很好的解决方案。
用法
- def 线程初始化(data):
print(“初始化”, data, 取当前线程名称())
互斥锁 = 互斥锁() def 任务函数(i):
time.sleep(1) 互斥锁.进入() print(i) 互斥锁.退出() return “返回参数” + str(i)
- def 任务完成(future):
print(“当前线程”, 取当前线程名称()) print(“future”, future.result())
任务池 = 线程池(4, “pyefun”, 线程初始化, [0])
- for url in range(10):
future = 任务池.投递任务(任务函数, url) 任务池.设置任务结束回调函数(future, 任务完成)
任务池.等待()