Нет, append()
не блокирует, а .get()
блокирует.Это цель из .get()
для блокировки.В
res1 = [p.apply_async(jia,(i,1,1)) for i in a]
res1 = [i.get() for i in res1]
all работа передается в пул первой строкой, прежде чем any .get()
будет вызвана второй строкой.Но в
for i in a:
res1.append(p.apply_async(jia,(i,1,1)).get())
.get()
ожидает завершения одного фрагмента работы, прежде чем он позволяет циклу продолжить даже запуск следующего фрагмента работы.Вы сериализовали работу - параллельно ничего полезного не происходит.