При использовании новой библиотеки concurrent.futures в Python с многопроцессорностью / многопоточностью. Как я могу выставить ошибки, чтобы они отображались.
Я специально ввел ошибку в get_user_object
с переменной, которая не существует. Я ожидаю, что здесь мне будет выдано сообщение об ошибке, но вместо этого программа будет зависать / завершаться немедленно.
import concurrent.futures
import multiprocessing as mp
def get_user_object(batch, doesent_exist):
with _COUNTER.get_lock():
_COUNTER.value += 1
print(_COUNTER.value, end=' ')
#error here
print(variable_that_doesent_exist)
def init_globals(counter):
global _COUNTER
_COUNTER = counter
def main():
counter = mp.Value('i', 0)
with concurrent.futures.ProcessPoolExecutor(
initializer=init_globals, initargs=(counter,)
) as executor:
for _ in executor.map(get_user_object, range(10)):
pass
print()
if __name__ == "__main__":
import sys
sys.exit(main())