Вы можете вызвать импортер python как функцию в другом потоке вместо использования import foo
. Поскольку этот импорт требует значительных вычислительных ресурсов и python позволяет запускать одновременно только один поток (если только он не похож на pandas
, который выпускает GIL), вы можете найти небольшое преимущество. Тем не менее,
import threading
import time
def begin_load_foo():
global foo_thread
foo_thread = threading.Thread(target=load_foo_thread)
foo_thread.start()
def load_foo_thread():
global foo
print("start importing")
foo = __import__('foo')
print("done importing")
def wait_foo():
print('wait')
foo_thread.join()
print('done')
def do_other_things():
time.sleep(1)
begin_load_foo()
do_other_things()
wait_foo()
foo.bar()