Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การรันงานแบบขนาน (Parallel Tasks) ใน Python

หากโปรแกรม 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()