Я изучаю модуль многопроцессорности. Я нашел эти примеры в документации на python.org:
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
Здесь они используют соединение, чтобы завершить процесс.
from multiprocessing import Process, Lock
def f(l, i):
l.acquire()
try:
print('hello world', i)
finally:
l.release()
if __name__ == '__main__':
lock = Lock()
for num in range(10):
Process(target=f, args=(lock, num)).start()
Но в данном случае они его не используют. Я также прочитал это:
Помните также, что процессы, не являющиеся демонами, будут присоединяться автоматически.
Это объясняет второй пример. Так почему я должен использовать соединение в первом? Должен ли я это делать, потому что процесс находится в переменной?