Kode berikut memulai tiga proses, mereka berada dalam satu kumpulan untuk menangani 20 panggilan pekerja:
import multiprocessing
def worker(nr):
print(nr)
numbers = [i for i in range(20)]
if __name__ == '__main__':
multiprocessing.freeze_support()
pool = multiprocessing.Pool(processes=3)
results = pool.map(worker, numbers)
pool.close()
pool.join()
Apakah ada cara untuk memulai proses secara berurutan (dibandingkan memulai semuanya pada waktu yang sama), dengan penundaan di antara setiap permulaan proses?
Jika tidak menggunakan Pool
saya akan menggunakan multiprocessing.Process(target=worker, args=(nr,)).start()
dalam satu lingkaran, memulainya satu demi satu dan memasukkan penundaan sesuai kebutuhan. Namun menurut saya Pool
sangat berguna (bersama dengan panggilan map
) jadi saya akan dengan senang hati menyimpannya jika memungkinkan.
Pool
secara berurutan (dengan penundaan 5 detik) akan menyelesaikan masalah. - person WoJ   schedule 16.09.2015