ZhijiunY / WebBackend

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WebBackend

題目說明:

想像你擁有一間肉品加工廠,工廠只加工三種肉類,牛、豬、雞。 今天有一堆肉品進 貨,共有牛肉 10 份、豬肉 7 份、雞肉 5 份。 你有五個員工,代號為 A,B,C,D,E,每一個員工處理肉的速度都一樣,牛肉需要 1 秒,豬 肉需要 2 秒,雞肉需要 3 秒,五個員工彼此的工作互不干涉,他們都能夠獨立處理肉品,且 每個人一次只能處理一塊肉,每塊肉只能被一個人處理,人取肉後不得放回。 你的目標是把這次進貨的牛肉 10 份、豬肉 7 份、雞肉 5 份,交由五位員工全部處理完成,每一位員工都是隨機取肉,並請你忽略取肉的時間,唯一會耗時的只有【處理肉】。

請模擬上述情境,用 concurrency 的概念撰寫一支程式,將所有肉品處理完畢。

創建一個channel來存放所有肉品,每個goroutine代表一位員工, 他們將從channel中取出肉品來處理。每處理完一份肉品,程序將輸出員工的代號、 當前時間以及他們取得和完成處理肉品的資訊。這樣可以模擬出一個並行工作的環境, 展示每個員工獨立完成工作的過程。

About


Languages

Language:Go 100.0%