MST

星途 面试题库

面试题:Python中threading模块的常用实用函数及应用场景

请介绍Python的threading模块中除了Thread类之外,至少三个常用的实用函数,并说明它们各自适用于哪些常见的多线程编程场景。
34.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

1. current_thread()

  • 函数说明:返回当前线程对象。
  • 适用场景:当需要在代码的某个部分知道当前正在执行的线程实例时使用。比如在一个通用函数中,可能被不同线程调用,通过这个函数可以获取当前调用线程的相关信息(如线程名等),进行日志记录、线程特定的状态跟踪等操作。例如在多线程爬虫中,记录每个线程抓取的页面数量时,可以使用此函数确定是哪个线程抓取的页面,并更新相应线程的计数器。

2. enumerate()

  • 函数说明:返回当前活动的所有线程对象的列表,包括主线程。
  • 适用场景:用于获取所有活动线程的列表,便于对所有线程进行统一管理或监控。例如,在程序结束前需要确保所有线程都已完成任务,可以遍历enumerate()返回的列表,调用每个线程的join()方法等待它们完成。又或者在需要统计当前运行线程数量的场景下,使用len(enumerate())即可得到活动线程数。

3. active_count()

  • 函数说明:返回当前活动的线程数量,包括主线程。
  • 适用场景:快速获取当前程序中活动线程的总数。在需要根据活动线程数量进行条件判断的场景中很有用,比如当活动线程数达到某个阈值时,暂停新线程的启动,以避免系统资源过度消耗。例如在一个多线程数据处理系统中,若活动线程数超过100个,暂停接收新的数据处理任务,等待部分线程完成后再继续。