- Ở
NormalRoom, thằng playerManager là raw type, làm sao chuyển nó thànhPlayerManagerở MMORoom. - Với vòng lặp vô hạn ở
MMORoom, mình viết unit test kiểu gì vậy ạ? - Cái vòng lặp trong
MMORoomcó cần làm gì khác ngoài set cái nearby players không ạ?
Cách test MMORoom
https://github.com/youngmonkeys/game-box/pull/2
. Em có 1 số câu hỏi:
game-box
Remain: 5
3 Answers
tvd12
Enlightened
tvd12
Enlightened
- Ở
NormalRoom, thằng playerManager là raw type, làm sao chuyển nó thànhPlayerManagerở MMORoom.
=> em cứ sử dụng playerManager, nhưng lúc lấy ra em ép kiểu về MMOPlayer nhé
- Với vòng lặp vô hạn ở
MMORoom, mình viết unit test kiểu gì vậy ạ?
=> Thực tế thì mình sẽ dùng bến
volatile active em nhé cod sẽ kiểu
while(active) {
// do something
}
Mình có thể bố sung hàm destroy vào MMORoom để lúc nào remove cái room thì set cái
active về false em nhé
- Cái vòng lặp trong
MMORoomcó cần làm gì khác ngoài set cái nearby players không ạ?
=> không và không nên em ạ
Chỉ ở cuối vòng lặp mình sẽ có một cái hàm nofify kiểu này:
private void notifyUpdateFinished() {
eventListeners.forEach(it -> it.onRoomUpdated(MMORoom room))
}
em nhé
-
0
Vu Luong Anh
Pundit
Vu Luong Anh
Pundit
Em đọc thì thấy biến volatile sẽ được lưu trên main memory. Cho em hỏi main memory ở đây có phải RAM ko ạ? Và có phải mọi threads sẽ đều truy cập được biến này?
-
0
monkey
Enlightened
monkey
Enlightened
volatile boolean active = false thì ở bên trong máy ảo sẽ hoạt động kiểu này:
MainMemory.getInstance().setVolatile("MMORoom.active", false);
while(active) sẽ được dịch kiểu này em ạ:
while(true) {
while(!MainMemory.getInstance().getVolatile("MMORoom.active")) {
wait(); // chờ cho đến khi nhận được thông báo từ thread khác
}
}
-
0