首页 > IT职业 > IT生活 > python3爬虫如何统计多线程的运行?

我们一直在说多线程可以同时进行程序的运转,那么今天我们再进一步思考,同时运行的线程会有多少个呢?可能有的小伙伴没往这个层面想过。那么我们可以把这个问题拆分成三个小部分:拆分的个数、拆分的线程是什么、在运行的线程是什么。明确了这个思路我们就可以进行今天内容的学习了。
线程的基本统计
import threading
def main():
print(threading.active_count()) # 统计现在有多少个激活的线程
print(threading.enumerate()) # 是哪几个激活的线程:名字
print(threading.current_thread()) # 现在正在运行的线程
if __name__ == '__main__':
main()
输出结果为
5 [<_MainThread(MainThread, started 21440)>, <Thread(Thread-4, started daemon 15276)>, <Heartbeat(Thread-5, started daemon 17844)>, <HistorySavingThread(IPythonHistorySavingThread, started 13528)>, <ParentPollerWindows(Thread-3, started daemon 21116)>] <_MainThread(MainThread, started 21440)>
表示有5个已经active的threading,一个是mainthread,另外是thread-4、thread-5、thead-3、savingThread;正在运行的是主线程。
拓展:增加target和传参args
def thread_job():
print("This is an added thread, numbet is %s."%threading.current_thread())
def main1():
# added_thread = threading.Thread() # 添加的线程,尚未给它工作
added_thread = threading.Thread(target=thread_job) # 添加的线程,同时给它定义一个工作,通过target传进去工作内容,
# 同时加上执行的语句 .start() 运行
added_thread.start()
if __name__ == '__main__':
main1()
运行结果
This is an added thread, numbet is <Thread(Thread-9, started 13780)>.
本篇统计运行中多线程的个数不是很难,小伙伴们可以手动输入代码试试,再跟小编的代码进行对比,另外可以了解一下target和args的额外用法。更多Python学习指路:PyThon学习网教学中心。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3598/viewspace-2832056/ ,如需转载,请注明出处,否则将追究法律责任。