Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Challenge: Den Begränsade Dropplåsningen | Multithreading vs. Multiprocessing
Python Strukturell Programmering
Avsnitt 3. Kapitel 7
single

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 variabeln hoodies_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_stock och lägg till customer_id till listan dropped_customers.
  • Efter att alla trådar har avslutats ska exakt 10 kund-ID:n finnas i dropped_customers och hoodies_in_stock ska vara 0.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 7
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt