หากโปรแกรม Python สามารถแบ่งเป็น subprograms ที่การประมวลผลไม่พึ่งพากัน แต่ละ subprogram สามารถรันแบบขนาน (parallel) ได้เมื่อโปรแกรมหลักทำงาน เรียกว่า parallel processing ใน Python
ใช้ multiprocessing
โมดูลนี้สร้าง child processes หลายตัวของ main process ที่รันขนานกัน ในโปรแกรมด้านล่าง เราเริ่มต้น process แล้วใช้ run() รัน sub-processes หลายตัว เราเห็น process id ต่างๆ ใน print statement ใช้ sleep() เพื่อหน่วงเวลาเล็กน้อยระหว่างการพิมพ์
ตัวอย่าง
import multiprocessing
import time
class Process(multiprocessing.Process):
def __init__(self, id):
super(Process, self).__init__()
self.id = id
def run(self):
time.sleep(1)
print("Running process id: {}".format(self.id))
if __name__ == '__main__':
p = Process("a")
p.start()
p.join()
p = Process("b")
p.start()
p.join()
p = Process("c")
p.start()
p.join()
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ −
Running process id: a Running process id: b Running process id: c
หมายเหตุ: โค้ดตัวอย่างใช้ join() ทีละตัว ทำให้รันลำดับชั้น (sequential) ไม่ใช่ขนานจริง สำหรับขนานจริงควร start() ทั้งหมดก่อนแล้วค่อย join()