Một mô tả cho cách thức hoạt động trên Linux bằng Uli Drepper (duy trì glibc) có thể được tìm thấy ở đây: www.akkadia.org/drepper/tls.pdf
Yêu cầu để xử lý các module được nạp tự động, vv làm cho toàn bộ cơ chế một chút phức tạp, mà có lẽ một phần giải thích lý do tại sao tài liệu có trọng số ở 79 trang (!).
Bộ nhớ sử dụng khôn ngoan, mỗi biến cho mỗi luồng rõ ràng cần bộ nhớ riêng cho mỗi luồng (mặc dù trong một số trường hợp có thể được thực hiện một cách lười biếng sao cho không gian được phân bổ chỉ khi biến được truy cập đầu tiên), và sau đó có một số cơ sở dữ liệu bổ sung cần thiết cho các bảng bù trừ, v.v.
Hiệu suất cao, chi phí bổ sung để truy cập biến TLS chủ yếu xoay quanh việc lấy địa chỉ của biến. Trên x86 Linux, thanh ghi GS được sử dụng như là một khởi đầu để có được một id luồng, trên x86-64 FS. Thông thường có một vài tham số con trỏ, và một cuộc gọi hàm (__tls_get_addr) cho mã được nạp động. Ngoài ra còn có chi phí tạo ra một chuỗi mới chậm hơn vì việc triển khai cần phân bổ không gian và có thể khởi tạo tất cả các vars TLS (nếu không được thực hiện một cách lười biếng).
TLS là tốt đẹp để dễ dàng làm cho một số mẫu mã không an toàn chủ đề cũ an toàn (suy nghĩ errno), nhưng đối với mã mới được thiết kế từ đầu cho một thế giới đa luồng nó rất hiếm khi cần thiết.
Chi phí lớn nhất là bảo trì mã. –