Saya mencoba membaca dokumentasi di http://docs.python.org/dev/library/multiprocessing.html tetapi saya masih kesulitan dengan multiprocessing Queue, Pool and Locking. Dan untuk saat ini saya dapat membuat contoh di bawah ini.
Mengenai Antrian dan Pool, saya tidak yakin apakah saya memahami konsep dengan cara yang benar, jadi koreksi saya jika saya salah. Apa yang saya coba capai adalah memproses 2 permintaan sekaligus (daftar data memiliki 8 dalam contoh ini) jadi, apa yang harus saya gunakan? Pool untuk membuat 2 proses yang dapat menangani dua antrian berbeda (maksimal 2) atau haruskah saya menggunakan Antrean untuk memproses 2 input setiap kali? Kunci akan mencetak output dengan benar.
import multiprocessing
import time
data = (['a', '2'], ['b', '4'], ['c', '6'], ['d', '8'],
['e', '1'], ['f', '3'], ['g', '5'], ['h', '7']
)
def mp_handler(var1):
for indata in var1:
p = multiprocessing.Process(target=mp_worker, args=(indata[0], indata[1]))
p.start()
def mp_worker(inputs, the_time):
print " Processs %s\tWaiting %s seconds" % (inputs, the_time)
time.sleep(int(the_time))
print " Process %s\tDONE" % inputs
if __name__ == '__main__':
mp_handler(data)