Code giải thuật về Monitor-deadlock bị lỗi
Sao chép mã từ đâu thế?
Chụp 2 cái hình chỉ để biết có mấy gạch đỏ chứ có biết lỗi gì đâu.
Ngay cả khai báo phương thức cũng sai.
Nói chung là sai cơ bản - sai cú pháp của C#.
của thầy dạy môn hệ điều hành đó ạ .
Nếu a ko phiền có thể giúp e giải thuật bữa ăn của các triết gia theo đồng bộ monitor ko ạ .
E đọc tài liệu khắp nơi cả trăm lần nhưng vẫn ko hiểu cách giải quyết vấn đề
Cái này là giả mã có chạy được đâu Phải viết lại đúng cú pháp mới được, dùng
System.Threading
thật sự là e biết cú pháp Monitor dùng thế nào luôn ấy ạ ,thầy chỉ dạy sơ wait signal rồi bắt làm chứ ko có đề cập cú pháp hay cấu trúc dùng
Làm gì có cú pháp Monitor hả cậu
Đó là mã giả (có thể dựa theo cú pháp của C#), mục đích để cậu hiểu thuật toán, rồi cậu tự implement nó bằng ngôn ngữ mà cậu thích (ngôn ngữ lập trình mới có cú pháp).
Cơ mà cậu gặp vấn đề gì khi cố hiểu giải thuật này vậy? Cậu đã đọc tài liệu nào rồi? Cậu đã hiểu tới đâu rồi, và chỗ nào chưa hiểu? Và code trên cậu không hiểu đoạn nào?
Cậu có thể chỉ cụ thể cho bọn tớ được không?
E đã đọc tài liệu từ wikipedia cho tới các nguồn thông tin microsoft rồi ạ .
E thấy để giải quyết Dining Philosophers problem thì có các cách khác nhau.
Mặc dù e đã hiểu về signal wait nhưng e ko hiểu cách giải pháp monitor của thầy (như code trên) để giải quyết vấn đề này ạ.
Sau nhiều ngày học hỏi từ nhiều nguồn khác nhau từ 50 lỗi giờ fix còn 2 lỗi mong m.n giải thích lỗi này giúp e với ạ
The type of any member field, property, or event must be at least as accessible as the member itself. For example, you can’t have a
public
methodM
that returns a classC
unlessC
is alsopublic
. Likewise, you can’t have aprotected
property of typeA
ifA
is declared asprivate
.
Nghĩa là property, method là public thì kiểu dữ liệu (class, enum, struct) phải là public.
Ngoài ra bug không giảm dần đâu, fix xong 2 bug còn 101 bug là bình thường.