pyefun.核心易函数支持库.线程操作 module

提示

线程操作有线程池

class pyefun.核心易函数支持库.线程操作.事件锁[源代码]

基类:object

堵塞(**kwargs)
等待(**kwargs)
通行(**kwargs)
class pyefun.核心易函数支持库.线程操作.互斥锁[源代码]

基类:object

类似许可证,这个可能会造成死锁

进入(**kwargs)
退出(**kwargs)
class pyefun.核心易函数支持库.线程操作.信号量(数量=1)[源代码]

基类:object

设置最大同时运行的线程数

进入(**kwargs)
退出(**kwargs)
pyefun.核心易函数支持库.线程操作.取当前线程名称()[源代码]
class pyefun.核心易函数支持库.线程操作.线程[源代码]

基类:object

取运行中的线程对象(**kwargs)
取运行的线程数(**kwargs)
启动线程(**kwargs)
等待线程结束(**kwargs)
线程是否在运行(**kwargs)
pyefun.核心易函数支持库.线程操作.线程_取主线程()[源代码]

返回主要Thread对象。在正常情况下,主线程是启动Python解释器的线程。

pyefun.核心易函数支持库.线程操作.线程_取当前线程()[源代码]

返回与Thread调用方的控制线程相对应的当前对象。如果未通过threading模块创建调用者的控制 线程,则返回功能有限的虚拟线程对象。

pyefun.核心易函数支持库.线程操作.线程_取所有活动对象()[源代码]

返回Thread当前所有活动对象的列表。该列表包括守护线程,由创建的伪线程对象 current_thread()和主线程。它不包括终止的线程和尚未启动的线程。

pyefun.核心易函数支持库.线程操作.线程_取活动对象数()[源代码]

返回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, 任务完成)

任务池.等待()

批量投递任务(任务函数, *任务参数数组, 超时=None, chunksize=1)[源代码]

批量投递任务 不能设置回调函数 :param 任务函数: :param 任务参数数组: :param 超时: :param chunksize: :return:

投递任务(*任务函数, **传入参数)[源代码]
参数
  • 任务函数

  • 传入参数

返回

Future 对象可以 设置任务结束回调函数

等待()[源代码]
设置任务结束回调函数(future, 回调函数)[源代码]

投递任务返回的对象

def 回调函数(线程返回的结果):

print(“当前线程”, current_thread().name) print(“线程返回的结果”, future.result())

class pyefun.核心易函数支持库.线程操作.递归锁[源代码]

基类:object

类似许可证,互斥锁的升级版,这个不会造成死锁

进入(**kwargs)
退出(**kwargs)