VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

Hội nghị Ngôn ngữ Python 2026 thảo luận về Mô hình Đồng thời Hướng Hành vi cho Python Luồng tự do

30/09/2026 · VietTechies · Biên tập

Hình minh họa nằm ngang theo phong cách tối giản về cơ chế khóa hình học tinh tế bao quanh một quả cầu màu xanh ngọc bích phát sáng trên nền tối.
Ảnh minh họa do AI tạo.

Tại Hội nghị Ngôn ngữ Python 2026, các diễn giả Tobias Wrigstad, Fridtjof Stoldt và Donghee Na đã trình bày các đề xuất về mô hình trừu tượng đồng thời cấp cao dành cho kỷ nguyên hậu GIL. Tiếp nối tiến trình về khả năng chạy đa luồng tự do (free-threading) theo PEP 779, phiên thảo luận tập trung vào việc vượt qua các giao diện luồng cấp thấp nhằm ngăn ngừa những sự cố bộ nhớ như bế tắc (deadlock) và tranh chấp dữ liệu (data race).

Đặt tính an toàn lên hàng đầu trong các mô hình đồng thời của Python

Các diễn giả phân loại các mô hình đồng thời theo ba yếu tố đánh đổi trong thiết kế: tốc độ, sự đơn giản và tính an toàn. Trong khuôn khổ này, C cung cấp tốc độ và sự đơn giản nhưng phải đánh đổi bằng an toàn bộ nhớ, Erlang ưu tiên tính an toàn và sự đơn giản thông qua truyền thông điệp cùng sao chép dữ liệu, còn Rust mang lại tốc độ cùng tính an toàn nhưng làm tăng độ phức tạp ngôn ngữ. Phương pháp khóa đơn truyền thống của Python dưới sự quản lý của Global Interpreter Lock (GIL) mang lại một mô hình đơn giản, trong khi Python luồng tự do hoạt động với cơ chế quản lý luồng cấp thấp tương tự C. Các diễn giả cho rằng các mô hình trừu tượng đồng thời cấp cao của Python nên ưu tiên tính an toàn trước tiên, tiếp theo là hiệu năng, đồng thời chấp nhận rằng sự đơn giản tuyệt đối có thể mâu thuẫn với tốc độ thực thi.

Mô hình Đồng thời Hướng Hành vi và bản thử nghiệm bocpy

Để đảm bảo tính an toàn mà không cần khóa cấp thấp thủ công, bộ ba đề xuất Mô hình Đồng thời Hướng Hành vi (Behavior-Oriented Concurrency – BOC). Trong mô hình BOC, chương trình chia nhỏ công việc thành các đơn vị dựa trên tác vụ sở hữu dữ liệu thông qua các đối tượng chủ sở hữu đồng thời, gọi là "Cowns". Sử dụng decorator `@when`, các tác vụ khai báo rõ ràng những Cowns mà chúng yêu cầu, cho phép bộ lập lịch xây dựng một đồ thị phụ thuộc hoàn chỉnh giữa tác vụ và dữ liệu. Ranh giới cấu trúc này đảm bảo chương trình vận hành không gặp bế tắc hay tranh chấp dữ liệu, chuyển trách nhiệm an toàn thực thi sang bộ lập lịch runtime.

Để minh họa phương pháp này, nhóm tác giả đã tạo ra `bocpy`, một gói phần mềm thử nghiệm ban đầu hiện có sẵn trên Python Package Index (`pip install bocpy`). Được triển khai bằng subinterpreter, `bocpy` cung cấp khả năng cô lập dữ liệu, lập lịch tác vụ và định nghĩa Cown. Tuy nhiên, vì `bocpy` hiện chạy trên nền Python chưa chỉnh sửa, các bảo đảm hoàn chỉnh về quyền sở hữu đối tượng ở runtime vẫn chưa thể thực thi nếu không có thay đổi trong runtime cốt lõi.

Thay đổi bộ nhân CPython và cân nhắc cho hệ sinh thái

Việc đạt được ranh giới sở hữu nghiêm ngặt và an toàn bộ nhớ sẽ yêu cầu những chỉnh sửa đối với bộ nhân CPython, chẳng hạn như tổ chức heap thành các nhóm đối tượng cô lập hoặc giới thiệu các tính năng bất biến cho đối tượng như mô tả trong PEP 795. Trong các cuộc thảo luận tại hội nghị, các nhà phát triển nòng cốt đã đặt câu hỏi về ranh giới API, khả năng tích hợp với `asyncio` và chi phí phát sinh runtime.

Các đại biểu lưu ý về rủi ro khi chuẩn hóa quá sớm một mô hình đồng thời duy nhất thay vì cung cấp các khối nền tảng cho hệ sinh thái bên ngoài tự do đổi mới. Đồng thời, diễn giả cũng dẫn chứng tình trạng phân mảnh hệ sinh thái ở các ngôn ngữ khác khi thiếu các trừu tượng runtime chuẩn, nhấn mạnh nỗ lực tiếp diễn nhằm tìm kiếm sự cân bằng hiệu quả cho môi trường Python chuẩn.

Ảnh minh họa do AI tạo, không phải ảnh tư liệu.

Nguồn: Free-Threaded Python Post-Era (Python Language Summit 2026)