2011-05-11 96 views
0

我需要編寫一個線程來模擬餐廳中的餐桌。 桌子有四個座位。隨機的時間客戶來,如果他們找到一個空座位,他們留下,否則他們離開。 你能幫我嗎? 感謝Linux線程 - 模擬餐廳表

+0

你已經寫了什麼代碼?你有什麼需要幫助的? – Grammin 2011-05-11 15:29:53

+0

這是功課嗎?問題還有更多嗎?桌上的人什麼時候離開? – Duck 2011-05-11 15:36:48

+0

我創建了表的線程,但我有問題填充它 隨時隨地來去的人。 – Jim 2011-05-11 15:40:34

回答

0

下面是一些僞代碼:

-- A Table Thread 

integer num_free_seats := 4 

loop forever 
    wait for customer c 
    if num_free_seats > 0 
     seat_customer(c) 
     num_freeSeats := num_free_seats - 1 
    else 
     throw_out_customer(c) 
    end if 
0

所以你需要初始化在餐桌的座位數的信號。人們(大概是其他線程)檢查它。他們等待信號,直到他們進入。他們離開後發佈信息。如果他們真的需要立即離開,如果他們沒有坐下,那麼使用sem_trywait之類的東西。使用某種隨機的睡眠時間,他們在桌上多久。