Python ดีสำหรับการทำงานพร้อมกันหรือไม่?
Python ดีสำหรับการทำงานพร้อมกันหรือไม่?

วีดีโอ: Python ดีสำหรับการทำงานพร้อมกันหรือไม่?

วีดีโอ: Python ดีสำหรับการทำงานพร้อมกันหรือไม่?
วีดีโอ: รู้ไหมว่า Python สามารถใช้ทำอะไรได้บ้าง? | 2022 2024, พฤศจิกายน
Anonim

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

สิ่งที่ควรทราบก็คือ Python รองรับการทำงานพร้อมกันหรือไม่

Python ไม่ มีไลบรารี่ในตัวสำหรับใช้งานทั่วไป พร้อมกัน โครงสร้างการเขียนโปรแกรม - มัลติโพรเซสซิงและมัลติเธรด เหตุผลก็คือ มัลติเธรดใน Python ไม่ใช่มัลติเธรดจริง ๆ เนื่องจาก GIL ใน Python.

อาจมีคนถามด้วยว่าเหตุใดการทำมัลติเธรดจึงไม่สามารถทำได้ใน python ล่าม CPython (สำหรับ pure Python รหัส) จะบังคับให้ GIL ถูกเผยแพร่ทุก ๆ ร้อยไบต์รหัสคำสั่ง อนุญาตให้เรียกใช้เธรดเดียวเท่านั้นภายในล่าม หลายการประมวลผลดังนั้น ไม่ใช่มัลติเธรด จะช่วยให้คุณบรรลุการทำงานพร้อมกันอย่างแท้จริง

ต่อมา คำถามคือ Python ดีสำหรับการทำ multithreading หรือไม่?

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

โมดูลใดที่สามารถใช้สร้างการทำงานพร้อมกันใน Python 3 ได้

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

แนะนำ: