Tôi muốn một số làm rõ về mutex và semaphore.
Câu hỏi của tôi là,Mutex và semaphore thực sự làm gì?
- mutex Điều gì thực sự làm gì khi a thread cố gắng vào một khu vực bị khóa bởi một mutex, a. nó chờ khóa được thả ra? hoặc b. nó đi vào giấc ngủ cho đến khi khóa được giải phóng. Trong trường hợp đó làm thế nào nó được thức dậy một lần nữa khi khóa được phát hành?
- Câu hỏi tương tự như 1, nhưng trong trường hợp này nó là semaphore.
- Bạn có thể cho tôi một số mã liên quan đến việc chờ đợi bận rộn trong pthread trong C và cũng là trường hợp chuỗi chuyển sang chế độ ngủ thay vì chờ? ngủ có nghĩa là nó bị chặn hoặc ngủ là một loại chờ đợi bận rộn?
- tôi muốn biết một số chương trình nơi các tình huống này được đề cập, ví dụ một số mã nguồn c nơi chờ đợi bận rộn, chặn vv được triển khai.
Đây có phải là bài tập về nhà không? –
Không, tôi đã học về các cơ chế chờ đợi và chặn bận để đồng bộ hóa luồng. Nhưng tôi không chắc chắn về những gì mutex và semaphore nào. –