Avsnitt 3. Kapitel 7
single
Challenge: Den Begränsade Dropplåsningen
Svep för att visa menyn
Uppgift
Svep för att börja koda
Ett känt varumärke släpper en limiterad hoodie med endast 10 exemplar tillgängliga. Det finns 50 trådar som simulerar kunder som försöker köpa hoodien samtidigt. Din uppgift är att säkerställa att exakt 10 hoodies säljs och inte fler, genom att använda en låsning för att förhindra race conditions.
- Använd det tillhandahållna
lock-objektet för att synkronisera åtkomst till den delade variabelnhoodies_in_stock. - I funktionen
buy_hoodie, förvärva låset innan du kontrollerar och uppdaterar lagersaldot. - Simulera betalningsprocessen genom att lägga till en kort fördröjning (t.ex.
time.sleep(0.01)) medan låset hålls. - Om en hoodie finns tillgänglig, minska
hoodies_in_stockoch lägg tillcustomer_idtill listandropped_customers. - Efter att alla trådar har avslutats ska exakt 10 kund-ID:n finnas i
dropped_customersochhoodies_in_stockska vara 0.
Lösning
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 3. Kapitel 7
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal