Tôi đã cố gắng đọc tài liệu tại http://docs.python.org/dev/library/multiprocessing.html nhưng tôi vẫn gặp khó khăn với Hàng đợi, Nhóm và Khóa đa xử lý. Và bây giờ tôi đã có thể xây dựng ví dụ bên dưới.
Về Hàng đợi và Nhóm, tôi không chắc mình đã hiểu khái niệm này theo cách đúng hay chưa, vì vậy hãy sửa cho tôi nếu tôi sai. Những gì tôi đang cố gắng đạt được là xử lý 2 yêu cầu cùng lúc (danh sách dữ liệu có 8 trong ví dụ này), vậy tôi nên sử dụng cái gì? Nhóm để tạo 2 quy trình có thể xử lý hai hàng đợi khác nhau (tối đa 2 hàng đợi) hay tôi chỉ nên sử dụng Hàng đợi để xử lý 2 đầu vào mỗi lần? Khóa sẽ in kết quả đầu ra một cách chính xác.
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)