面试题答案
一键面试1. current_thread()
- 函数说明:返回当前线程对象。
- 适用场景:当需要在代码的某个部分知道当前正在执行的线程实例时使用。比如在一个通用函数中,可能被不同线程调用,通过这个函数可以获取当前调用线程的相关信息(如线程名等),进行日志记录、线程特定的状态跟踪等操作。例如在多线程爬虫中,记录每个线程抓取的页面数量时,可以使用此函数确定是哪个线程抓取的页面,并更新相应线程的计数器。
2. enumerate()
- 函数说明:返回当前活动的所有线程对象的列表,包括主线程。
- 适用场景:用于获取所有活动线程的列表,便于对所有线程进行统一管理或监控。例如,在程序结束前需要确保所有线程都已完成任务,可以遍历
enumerate()
返回的列表,调用每个线程的join()
方法等待它们完成。又或者在需要统计当前运行线程数量的场景下,使用len(enumerate())
即可得到活动线程数。
3. active_count()
- 函数说明:返回当前活动的线程数量,包括主线程。
- 适用场景:快速获取当前程序中活动线程的总数。在需要根据活动线程数量进行条件判断的场景中很有用,比如当活动线程数达到某个阈值时,暂停新线程的启动,以避免系统资源过度消耗。例如在一个多线程数据处理系统中,若活动线程数超过100个,暂停接收新的数据处理任务,等待部分线程完成后再继续。