Nếu bạn đang khóa và mở khóa rất thường xuyên, có thể bị phạt, vì việc lấy và nhả khóa sẽ mất một thời gian và có thể mất một khoảng thời gian hợp lý nếu khóa bị khóa.
Khi sử dụng nhiều ổ khóa trong cấu trúc như thế này, bạn sẽ phải rất cụ thể về những gì mỗi khóa thực sự khóa và đảm bảo bạn cẩn thận với khóa chết AB-BA. Ví dụ, nếu bạn đang thay đổi cấu trúc của cây trong quá trình khóa, bạn sẽ cần phải khóa tất cả các nút sẽ được thay đổi, theo thứ tự nhất quán và đảm bảo rằng các chuỗi làm việc trên con cháu không bị lẫn lộn.
Nếu bạn có số lượng khóa lớn, trải rộng trên bộ nhớ, các sự cố bộ nhớ đệm có thể gây ra vấn đề về hiệu năng, tùy thuộc vào kiến trúc, vì thao tác khóa thường sẽ làm mất hiệu lực ít nhất một phần bộ nhớ cache.
Đặt cược tốt nhất của bạn có thể là thực hiện một cấu trúc khóa đơn giản, sau đó cấu hình nó, sau đó tinh chỉnh nó để cải thiện hiệu suất, nếu cần thiết. Tôi không chắc những gì bạn đang làm với cây, nhưng một nơi tốt để bắt đầu có thể là một khóa đọc độc giả cho toàn bộ cây, nếu bạn mong đợi để đọc nhiều hơn bạn cập nhật.
"Chúng ta nên quên hiệu quả nhỏ, nói khoảng 97% thời gian: tối ưu hóa sớm là gốc rễ của mọi điều ác". - Donald Knuth
Một vài nghìn trên một cây duy nhất là .. loại có vấn đề .. nhưng khó nói mà không thực sự nhìn thấy nó. Bạn có thể đăng đủ mã để hiển thị một ví dụ hợp lý về những gì bạn đang làm không? –