Tôi đã đọc về GIL và nó không bao giờ thực sự xác định nếu điều này bao gồm các chủ đề chính hay không (tôi giả sử như vậy). Lý do tôi hỏi là bởi vì tôi có một chương trình với các chủ đề thiết lập sửa đổi một từ điển. Các chủ đề chính thêm/xóa dựa trên đầu vào của người chơi trong khi một luồng lặp dữ liệu cập nhật và thay đổi dữ liệu.Threading Python và GIL
Tuy nhiên trong một số trường hợp, một chuỗi có thể lặp qua các phím từ điển mà người ta có thể xóa chúng. Nếu có một cái gọi là GIL và chúng được chạy tuần tự, tại sao tôi nhận được lỗi dict thay đổi? Nếu chỉ có một giả sử để chạy tại một thời điểm, sau đó về mặt kỹ thuật điều này không nên xảy ra.
Có ai có thể làm sáng tỏ điều đó không? Cảm ơn bạn.
Nói chung, việc tạo luồng Python chỉ có ý nghĩa đối với các chuỗi I/O-bound. Nếu bạn muốn thống nhất truy cập cấu trúc dữ liệu song song, bạn cần khóa rõ ràng. Nếu bạn cần song song với CPU, thường thì bạn phải sử dụng một cái gì đó hoàn toàn khác. – 9000