Open Johnny850807 opened 6 years ago
難度:2
訓練目的:執行緒之synchronized', 'notifyAll(), notify(), wait() 之使用
synchronized', 'notifyAll()
notify()
wait()
模擬一間餐廳,餐廳有以下三個事件:
因為會有五個廚師同時處理餐廳訂單,因此一定要有5個執行緒!越多廚師(執行緒)則效率越高! 如果廚師進入休閒狀態,則廚師應該要立刻去查看是否有訂單!如果餐廳沒有訂單,那這些廚師應該要進入 wait 的狀態,而若有人上門點單則要使用 notify 呼叫其中一位廚師! 同步要做好,若有人同時上門點單,則需要避免有多個廚師同時被喚醒並嘗試接收同一份訂單!
wait
notify
印出餐廳的每一個事件以及狀態!2分鐘之後關閉程式!最後印出賺了多少錢!
所以你必須有個執行緒負責計時,2分鐘後通知餐廳結業! 印出越多資訊越好!才能感受到模擬餐廳的詳細情況! 例如印出: XXX客人點了一道XXX XXX廚師開始製作XXX客人要求的XXX XXX廚師完成了XXX客人要求的XXX,賺到了XX$
所以你必須有個執行緒負責計時,2分鐘後通知餐廳結業!
印出越多資訊越好!才能感受到模擬餐廳的詳細情況! 例如印出: XXX客人點了一道XXX XXX廚師開始製作XXX客人要求的XXX XXX廚師完成了XXX客人要求的XXX,賺到了XX$
此題目限制:禁止使用觀察者模式/BlockingQueue,但若你這題通過了,請去學如何使用BlockingQueue!
BlockingQueue 是個已經實作了 wait 和 notify 的佇列,非常好用,但請先別使用他!
I think it is interesting for me!
難度:2
訓練目的:執行緒之
synchronized', 'notifyAll()
,notify()
,wait()
之使用模擬一間餐廳,餐廳有以下三個事件:
印出餐廳的每一個事件以及狀態!2分鐘之後關閉程式!最後印出賺了多少錢!
此題目限制:禁止使用觀察者模式/BlockingQueue,但若你這題通過了,請去學如何使用BlockingQueue!