ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ multi-threading ใน Python มันช่วยให้เราทำหลายงานพร้อมกันได้ Python มีโมดูลชื่อ threading สำหรับการทำงานหลายอย่างพร้อมกัน
เราจะดูวิธีการทำงานโดยการเขียนข้อมูลลงไฟล์ในพื้นหลังขณะคำนวณผลรวมขององค์ประกอบในรายการ มาดูขั้นตอนที่เกี่ยวข้องในโปรแกรม
นำเข้าโมดูล threading
สร้างคลาสโดยสืบทอดจากคลาส threading.Thread
เขียนโค้ดไฟล์ภายในเมธอด run ในคลาสข้างต้น
เริ่มต้นข้อมูลที่จำเป็น
เขียนโค้ดคำนวณผลรวมของตัวเลขในรายการ
ตัวอย่าง
# นำเข้าโมดูล
import threading
# สร้างคลาสโดยสืบทอดจาก threading.Thread base class
class MultiTask(threading.Thread):
def __init__(self, message, filename):
# เรียกใช้ Base class
threading.Thread.__init__(self)
# เริ่มต้นตัวแปรให้กับคลาส
self.message = message
self.filename = filename
# เมธอด run ที่ทำงานในพื้นหลัง
def run(self):
# เปิดไฟล์ในโหมดเขียน
with open(filename, 'w+') as file:
file.write(message)
print("Finished writing to a file in background")
# โค้ดเริ่มต้น
if __name__ == '__main__':
# เริ่มต้นตัวแปร
message = "We're from Tutorialspoint"
filename = "tutorialspoint.txt"
# สร้างอินสแตนซ์ของคลาสข้างต้นสำหรับเขียนในพื้นหลัง
file_write = MultiTask(message, filename)
# เริ่มงานในพื้นหลัง
file_write.start()
# งานอีกอย่างหนึ่ง
print("It will run parallelly to the above task")
nums = [1, 2, 3, 4, 5]
print(f"Sum of numbers 1-5: {sum(nums)}")
# เสร็จสิ้นงานพื้นหลัง
file_write.join()
It will run parallelly to the above task
Sum of numbers 1-5: 15
Finished writing to a file in background
ผลลัพธ์
คุณสามารถตรวจสอบไดเรกทอรีสำหรับไฟล์ ถ้าคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้
It will run parallelly to the above task Sum of numbers 1-5: 15 Finished writing to a file in background
สรุป
หากคุณมีข้อสงสัยจากบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น