ITPub博客

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

python3爬虫如何统计多线程的运行?

IT生活 作者:zzzhangyi 时间:2021-09-11 10:07:45 0 删除 编辑

我们一直在说多线程可以同时进行程序的运转,那么今天我们再进一步思考,同时运行的线程会有多少个呢?可能有的小伙伴没往这个层面想过。那么我们可以把这个问题拆分成三个小部分:拆分的个数、拆分的线程是什么、在运行的线程是什么。明确了这个思路我们就可以进行今天内容的学习了。


线程的基本统计

 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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    133
  • 访问量
    947