มัลติโปรเซสเซอร์หรือมัลติเธรดใน Python ไหนดีกว่ากัน
มัลติโปรเซสเซอร์หรือมัลติเธรดใน Python ไหนดีกว่ากัน

วีดีโอ: มัลติโปรเซสเซอร์หรือมัลติเธรดใน Python ไหนดีกว่ากัน

วีดีโอ: มัลติโปรเซสเซอร์หรือมัลติเธรดใน Python ไหนดีกว่ากัน
วีดีโอ: เขียน Python วิเคราะห์ข้อมูลด้วย Linear Regression | หมีไลฟ์โค้ด EP.22 โดย อ.พี่หมี 2024, อาจ
Anonim

NS เกลียว โมดูลใช้เธรด the มัลติโปรเซสเซอร์ โมดูลใช้กระบวนการ ความแตกต่างคือเธรดทำงานในพื้นที่หน่วยความจำเดียวกัน ในขณะที่กระบวนการมีหน่วยความจำแยกต่างหาก ทำให้ยากขึ้นเล็กน้อยในการแบ่งปันวัตถุระหว่างกระบวนการด้วย มัลติโปรเซสเซอร์ . กระบวนการวางไข่จะช้ากว่าการวางไข่ของเธรดเล็กน้อย

ในทำนองเดียวกัน มัลติโพรเซสซิง หรือมัลติเธรด อันไหนดีกว่ากัน?

ความแตกต่างที่สำคัญระหว่าง มัลติโปรเซสเซอร์ และ มัลติเธรด คือว่า มัลติโปรเซสเซอร์ อนุญาตให้ระบบมีซีพียูมากกว่าสองตัวที่เพิ่มเข้าไปในระบบในขณะที่ มัลติเธรด ให้กระบวนการสร้าง หลายเธรด เพื่อเพิ่มความเร็วในการคำนวณของระบบ

อาจมีคนถามอีกว่า อะไรคือข้อดีของการใช้มัลติเธรดแทนหลายโพรเซส? ดังนั้น, มัลติเธรด โปรแกรมสามารถทำงานได้เร็วกว่าบนระบบตัวประมวลผลเดียว นอกจากนี้ยังสามารถเร็วกว่าโปรแกรม โดยใช้หลายกระบวนการ เนื่องจากเธรดต้องการทรัพยากรน้อยลงและสร้างโอเวอร์เฮดน้อยลง

นอกจากนี้มัลติเธรดดีใน Python หรือไม่

ใน CPython เนื่องจาก Global Interpreter Lock เธรดเดียวเท่านั้นที่สามารถดำเนินการได้ Python โค้ดในครั้งเดียว (แม้ว่าไลบรารีที่เน้นประสิทธิภาพบางอย่างอาจเอาชนะข้อ จำกัด นี้ได้) อย่างไรก็ตาม เธรดยังคงเป็นโมเดลที่เหมาะสม หากคุณต้องการเรียกใช้งาน I/O-bound หลายงานพร้อมกัน

มัลติเธรดดีหรือไม่?

มัลติเธรด ไม่ใช่ ดี แนวคิดถ้าคุณต้องการรับประกันเวลาทางกายภาพที่แม่นยำ (เช่นในตัวอย่างของคุณ) ข้อเสียอื่นๆ ได้แก่ การแลกเปลี่ยนข้อมูลอย่างเข้มข้นระหว่างเธรด ฉันจะบอกว่า มัลติเธรด เป็น ดี สำหรับงานคู่ขนานจริงๆ หากคุณไม่สนใจเกี่ยวกับความเร็ว/ลำดับความสำคัญ/เวลาที่เกี่ยวข้องมากนัก

แนะนำ: