tôi đã viết đoạn code sau đây để kiểm tra hiểu biết của tôi về std::mutex
Tại sao khóa một std :: mutex không chặn thread
int main() {
mutex m;
m.lock();
m.lock(); // expect to block the thread
}
Và sau đó tôi nhận được một system_error: device or resource busy
. Không phải là lần thứ hai m.lock()
phải chặn luồng không?
chỉ có một luồng, tại sao nó hữu ích để chặn nó? – stijn
Chủ đề khác sẽ chặn; không có gì đảm bảo rằng tread mutex-owning sẽ (và trên thực tế phiên bản này tạo ra một lỗi.) – dlev
Nếu cuộc gọi thứ hai đó chặn luồng, luồng sẽ được bỏ chặn như thế nào? –