_worker()方法中用了while True循环

来源:11-8 ThreadPoolExecutor源码分析

慕九州4321812

2021-06-30

老师您好,
_worker()方法中用了while True循环不停地从work_queue中取work_item,

想问下,什么情况下可以真正用到while True循环,具体点说,像如下这种情况,task1 = executor.submit(get_html, (3))会很快执行_worker(),task2 = executor.submit(get_html, (2))也是同样,为什么还需要在一个线程中不停循环取work_item呢? 谢谢

executor = ThreadPoolExecutor(max_workers=2)
task1 = executor.submit(get_html, (3))
task2 = executor.submit(get_html, (2))

写回答

1回答

bobby

2021-07-02

很多场景下都需要用while true啊,比如你写一个web的server服务 不得一直不断的监听用户是否有请求进来啊? 比如你要写一个定时任务,比如每天早上八点爬取一下知乎,比如你要写一个定时任务每天晚上3点需要统计一下日志文件等太多的场景都需要你的系统一直运行着而不能停了

0
2
bobby
回复
慕九州4321812
其实这些问题比较简单,。你直接在对应的源码中ctrl+h全局搜索一下看看对应的逻辑是否还有其他地方被调用到了就知道了
2021-07-12
共2条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程