ทีมพัฒนา Python รับโค้ดปิด GIL เข้าสู่ main branch เป็นที่เรียบร้อย นับเป็นอีกก้าวเพื่อเข้าสู่ยุค Python ที่สามารถรัน multithread จริงๆ แบบใช้ซีพียูได้เต็มทุกคอร์
โค้ดที่รวมครั้งนี้นับว่าเป็นไปตามกำหนดที่เคยคาดว่าจะออกทัน Python 3.13 หรืออาจจะเลยไป Python 3.14 ผลการเปิดฟีเจอร์นี้โดยรวมไม่มีผลกระทบอะไรมากนัก แต่ยังรันชุดทดสอบทั้งหมดไม่ผ่าน โดยติดที่ชุดทดสอบของ asyncio
GIL เป็นกลไกลสำคัญคือภาษา Python ที่ทำให้โปรแกรมไม่สามารถกระจายโหลดได้ทุกคอร์ในซีพียูอย่างแท้จริง และที่ผ่านมามีความพยายามแก้ข้อจำกัดนี้มาโดยตลอด
Python ออกเวอร์ชั่นใหม่โดยเฉลี่ยปีละหนึ่งรอบเท่านั้น และ Python 3.12 ก็เพิ่งออกเมื่อเดือนตุลาคมที่ผ่านมา เราอาจจะต้องรออีกสักหน่อยจนกว่าจะมีไบนารีใช้งานจริง แต่หากอยากลองใช้งานจริงๆ พรุ่งนี้ Python nightly ก็น่าจะรวมโค้ดส่วนนี้เข้ามาแล้ว
ที่มา - Python
Comments
ผมรอใช้ parallel map ที่ไม่ต้องผ่าน IPC ก่อนหน้านี้คิดว่าจะเขียนง่าย ๆ อยู่กลายเป็นไปติดว่า serialize object บางตัวไม่ได้ -_-!