POSIX cho phép mutexes được đệ quy. Điều đó có nghĩa là cùng một chủ đề có thể khóa cùng một mutex hai lần và sẽ không bế tắc. Tất nhiên nó cũng cần phải mở khóa nó hai lần, nếu không thì không có chủ đề nào khác có thể có được mutex. Không phải tất cả các hệ thống hỗ trợ pthread cũng hỗ trợ các biến đổi đệ quy, nhưng nếu chúng muốn tuân thủ POSIX, chúng phải như vậy .
Các API khác (API cấp cao hơn) cũng thường cung cấp các mutexes, thường được gọi là Khóa. Một số hệ thống / ngôn ngữ (ví dụ: Mục tiêu ca cao-C) cung cấp cả hai, các đột biến đệ quy và không đệ quy. Một số ngôn ngữ cũng chỉ cung cấp một hoặc một ngôn ngữ khác. Ví dụ, trong các mutex Java luôn được đệ quy (cùng một luồng có thể hai lần "đồng bộ hóa" trên cùng một đối tượng). Tùy thuộc vào chức năng chủ đề nào khác mà họ cung cấp, việc không có các biến đổi đệ quy có thể không có vấn đề gì, vì chúng có thể dễ dàng được viết cho chính bạn (Tôi đã tự thực hiện các biến đổi đệ quy trên cơ sở các hoạt động đột biến / điều kiện đơn giản hơn).
Điều tôi không thực sự hiểu: Đột biến không đệ quy tốt cho cái gì? Tại sao tôi muốn có một bế tắc luồng nếu nó khóa cùng một mutex hai lần? Ngay cả các ngôn ngữ cấp cao có thể tránh điều đó (ví dụ: kiểm tra nếu điều này sẽ bế tắc và ném ngoại lệ nếu có) thường không làm điều đó. Họ sẽ để cho bế tắc thay thế.
Có phải điều này chỉ dành cho các trường hợp, trong đó tôi vô tình khóa nó hai lần và chỉ mở khóa một lần và trong trường hợp đột biến đệ quy, sẽ khó tìm ra vấn đề hơn, vì vậy thay vào đó tôi có bế tắc ngay lập tức để xem khóa không chính xác xuất hiện ở đâu? Nhưng tôi không thể làm điều tương tự với việc trả lại bộ đếm khóa khi mở khóa và trong tình huống, tôi chắc chắn rằng tôi đã phát hành khóa cuối cùng và bộ đếm không bằng 0, tôi có thể ném ngoại lệ hoặc ghi lại sự cố không? Hoặc có trường hợp sử dụng nào khác hữu ích hơn cho các trường hợp đột biến không đệ quy mà tôi không thấy? Hoặc có thể chỉ là hiệu suất, vì một mutex không đệ quy có thể nhanh hơn một chút so với một đệ quy? Tuy nhiên, tôi đã thử nghiệm điều này và sự khác biệt thực sự không lớn.