Tags:
Topics: 
Node Thumbnail

Thomas Wouters นักพัฒนาหลักของโครงการ Python ประกาศเตรียมอิมพลีเมนต์ PEP703 แผนการถอด Global Interpreter Lock (GIL) เพื่อให้โปรแกรมที่รันบน CPython นั้นสามารถใช้ประสิทธิภาพของซีพียูได้เต็มทุกคอร์ จากเดิมที่ระบบ thread ของ Python นั้นใช้ซีพียูได้เพียงคอร์เดียว และหากโปรแกรม Python  ต้องการใช้ซีพียูหลายคอร์ต้องทำงานผ่านโมดูล multiprocess ที่แยกโปรเซสไปเลย

ในช่วงแรกการรันโดยไม่มี GIL จะเป็นฟีเจอร์ทดลองที่ต้องเปิดใช้งานเอง คาดว่าจะเริ่มใช้งานได้ใน Python 3.13 หรือ 3.14 โดยตัวโครงการหลักจะซัพพอร์ตทั้งสองโหมด หลังจากนั้นจะเตรียมการเพื่อให้โหมดไม่มี GIL กลายเป็นโหมดเริ่มต้น คาดว่าจะใช้เวลาอย่างน้อย 1-2 ปี และต้องดูว่าโมดูลต่างๆ รองรับโหมดไม่มี GIL นี้มากน้อยแค่ไหน ช่วงสุดท้ายเมื่อโมดูลต่างๆ รองรับโหมดไม่มี GIL นี้แล้วและ API ใหม่ไม่มีปัญหาความเข้ากันได้กับโมดูลเดิมๆ ก็จะถอดโหมด GIL ออกไปเลย คาดว่าจะใช้เวลาถึง 5 ปี

การใช้ GIL เป็นแนวทางของ CPython เท่านั้น อิมพลีเมนต์ภาษา Python หลายตัวไม่ได้ใช้ GIL เช่น JPython หรือ IronPython ปัญหาที่ CPython ไม่สามารถถอด GIL ออกได้ ส่วนหนึ่งมาจากความเข้ากันได้กับโมดูลต่างๆ และประสิทธิภาพของโปรแรกมเมื่อรันแบบ single-thread ที่ลดลงเมื่อถอด GIL ออก

ที่มา - Python Core Development

Get latest news from Blognone

Comments

By: N Pack on 29 July 2023 - 16:15 #1290644
N Pack's picture

ใช้านได้

ใช้งานได้

ผมขอฝากนิดหนึ่งครับ เม้นต์ที่แก้คำผิดในเนื้อข่าว
น่าจะไม่นับโควตต้านะครับ 😁
ขอบคุณครับ

By: Azymik on 29 July 2023 - 21:23 #1290660 Reply to:1290644

ประสิทธิภาพของโปรแรกม

ประสิทธิภาพของโปรแกรม