美文网首页
threading 自学笔记

threading 自学笔记

作者: NanaCti | 来源:发表于2019-12-25 17:07 被阅读0次

获取threading信息

  • threading.active_count()
    用于获取活动的线程数量
  • threading.enumerate()
    以列表形式返回活动的线程对象
  • threading.main_thread()
    返回主线程对象
  • threading.current_thread()
    返回当前所处的线程对象
  • threading.get_ident()
    返回当前线程的 ID
  • threading.get_native_id()
    返回当前线程的原生集成线程 ID

新建线程之前的设置项

  • threading.settrace(func)
    设置一个跟踪函数,用于在run()执行之前被调用。
  • threading.setprofile(func)
    设置一个跟踪函数,用于在run()执行完毕之后调用。
  • threading.stack_size([size])
    返回创建线程时用到堆栈大小,或者传入参数设置堆栈大小
  • threading.TIMEOUT_MAX
    用于设置timeout 的最大值

线程实例的方法

  • threading.local()
    用于创建一个储存线程数据的实例
  • run()
    run方法是线程开始后调用,不通过继承直接调用时target 参数就是run方法
  • Thread.start()
    开始线程活动。会调用run方法在独立的线程中运行
  • Thread.join(timeout=None)
    调用了这个方法的线程会成为一个阻塞线程,在线程完成之前 ,主线程不会退出
  • Thread.name
    用于识别
  • getName()
    获取线程name
  • setName()
    设置线程name
  • Thread. ident || native_id
    同threading一样
  • Thread.is_alive()
    返回线程是否存活
  • Thread.daemon
    返回线程是否是守护线程,必须在线程开始前设置好才能使用,默认是false

  • threading.Lock
    一旦一个线程获得一个锁,会阻塞随后尝试获得锁的线程,直到它被释放
  • Lock.acquire(blocking=True, timeout=-1)
    可以阻塞或非阻塞地获得锁。blocking为false的时候不阻塞
  • Lock.release()
    释放锁
  • RLock
    与上文中的Lock差别为,RLock可以在同一线程中重复的上锁与解锁

Condition 条件对象

  • wait()
    使当前线程进入等待队列,并释放该线程所拥有的锁
  • wait_for()
    等待,直到条件计算为真
  • notify()
    用来唤醒由wait()引起的被挂起的线程,只有一个被唤醒
  • notifyAll()
    唤醒全部

threading.Semaphore(value=1) 信号量对象

Semaphore的value参数表示内部计数器的初始值,默认值为0。信号量内部有个计数器,它的计算方式:release()调用数减去acquire()调用数加上一个初始值。例如上边给的初始值为0,release()调用1次,acquire()调用5次.计算值为-4,则acquire()方法将会阻塞到可以返回时的计数器不是负数,也就是只有第一个线程返回为0
————————————————
原文链接:https://blog.csdn.net/qq_33371343/article/details/79201161

threading.Timer() 定时器对象

  • cancel()
    取消定时器,在定时器结束之前

相关文章

网友评论

      本文标题:threading 自学笔记

      本文链接:https://www.haomeiwen.com/subject/cutenctx.html