thực hiện mutex tôi chỉ đơn giản là thử lại trên CAS thất bại (pseudo code):Làm thế nào để thực hiện "backon mũ" trong việc thực hiện mutex đơn giản này?
while(!compare_and_swap(&mutex, 0, 1));
Nhưng nó lãng phí quá nhiều chu kỳ CPU.
Tôi đã học được rằng "hoàn trả theo hàm mũ" cải thiện hiệu suất tổng thể. Làm thế nào để thực hiện sự chậm trễ backoff trong C?
- Có API hẹn giờ chính xác (để thực hiện trễ trễ) không?
- Hệ điều hành có cung cấp bất kỳ cơ sở nào để triển khai backoff không?
Và đặt lại độ trễ thành giá trị bắt đầu sau khi kết nối thành công. – mpez0
@ mpez0 Tất nhiên. Nhưng tôi muốn reinitialize sự chậm trễ ngay trước khi tôi bắt đầu một thủ tục CAS. –