7 điểm bởi darjeeling 2025-09-16 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Kết luận

Trong bản dựng free-threaded của Python 3.14, asyncio đã loại bỏ Global Interpreter Lock (GIL)chuyển sang quản lý trạng thái theo từng luồng, từ đó cho phép thực thi song song thực sự. Nhờ vậy, hiệu năng có thể mở rộng tuyến tính theo số lượng luồng, cho phép chạy song song nhiều event loop và mở ra những khả năng mới cho các ứng dụng asyncio đa luồng hiệu năng cao.


Những thay đổi chính

  • Loại bỏ GIL (Global Interpreter Lock): Bản dựng free-threaded của CPython loại bỏ GIL để nhiều luồng có thể đồng thời thực thi mã Python.
  • Đảm bảo an toàn luồng: asyncio đã đảm bảo thread safety bằng cách dùng quản lý trạng thái theo từng luồng thay cho các cấu trúc dữ liệu toàn cục.
    • Lưu trữ task: Thay vì WeakSet toàn cục, hệ thống dùng danh sách liên kết đôi vòng tròn theo từng luồng để loại bỏ tranh chấp khóa và chi phí phát sinh của weak reference.
    • Lưu trữ task hiện tại: "task hiện tại" được lưu trong trạng thái của luồng để cho phép truy cập nhanh hơn và không cần khóa.

Cải thiện hiệu năng

  • Mở rộng hiệu năng tuyến tính: Kết quả benchmark cho thấy trong bản dựng free-threaded, hiệu năng của asyncio cải thiện tuyến tính khi số lượng luồng tăng lên.
  • Benchmark TCP: So với bản dựng có GIL, bản dựng free-threaded cho thấy throughput tăng đáng kể.
  • Benchmark web scraping: Trong benchmark web scraping dùng aiohttp, khi sử dụng nhiều worker trên bản dựng free-threaded, hiệu năng tăng hơn gấp đôi.

Chưa có bình luận nào.

Chưa có bình luận nào.