我有以下 Python 代码:
import threading
from datetime import datetime
import time
def f():
print('---- {:%H:%M:%S}'.format(datetime.now()))
import http.server
print('---- {:%H:%M:%S}'.format(datetime.now()))
threading.Thread(target=f).start()
while True:
pass
当我执行它时,我发现import http.server
. 从以下输出中可以看出,导入需要 23 秒。
C:\>python foo.py
---- 10:12:03
---- 10:12:26
但是,如果我在无限while
循环中稍微休眠一下,导入会更快。
import threading
from datetime import datetime
import time
def f():
print('---- {:%H:%M:%S}'.format(datetime.now()))
import http.server
print('---- {:%H:%M:%S}'.format(datetime.now()))
threading.Thread(target=f).start()
while True:
time.sleep(1)
输出:
C:\>python foo.py
---- 10:15:58
---- 10:15:58
我知道join()
方法的用法,但我想确切地知道为什么import http.server
无限while
循环中没有睡眠语句需要这么长时间。