Theo các phiên bản cũ hơn của tiêu chuẩn POSIX, phương thức đầu tiên có trình khởi tạo chỉ được đảm bảo hoạt động với các biến được cấp phát tĩnh, không phải khi biến là một auto
biến được xác định trong một thân hàm. Mặc dù tôi chưa bao giờ thấy một nền tảng nào mà điều này sẽ không được phép, ngay cả đối với auto
các biến và hạn chế này đã bị loại bỏ trong phiên bản mới nhất của tiêu chuẩn POSIX.
Các static
biến thể thực sự thích hợp hơn nếu bạn có thể, vì nó cho phép để viết mã bootstrap dễ dàng hơn nhiều. Bất cứ khi nào tại thời điểm chạy, bạn nhập mã sử dụng mutex như vậy, bạn có thể yên tâm rằng mutex đã được khởi tạo. Đây là một thông tin quý giá trong bối cảnh đa luồng.
Phương pháp sử dụng hàm init sẽ thích hợp hơn khi bạn cần các thuộc tính đặc biệt cho mutex của mình, chẳng hạn như có thể đệ quy hoặc có thể chia sẻ giữa các tiến trình, không chỉ giữa các luồng.