[英]Linux thread - simulate a restaurant table
我需要編寫一個模仿餐廳中餐桌的線程。 桌子有四個座位。 顧客隨機出現,如果發現空座位,他們會留下來,否則就會離開。 你能幫我么? 謝謝
這是一些偽代碼:
-- 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
因此,您需要將信號量初始化為桌子上的座位數。 人們(大概是其他線程)對其進行檢查。 他們等待信號燈,直到他們進入。他們在離開時張貼。 如果他們真的沒有座位就必須立即離開,則使用sem_trywait之類的東西。 在餐桌上使用某種隨機睡眠多長時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.