Abschnitt 3. Kapitel 7
single
Challenge: Die Begrenzte Drop-Sperre
Swipe um das Menü anzuzeigen
Aufgabe
Wischen, um mit dem Codieren zu beginnen
Eine bekannte Marke bringt einen limitierten Hoodie heraus, von dem nur 10 Stück verfügbar sind. Es gibt 50 Threads, die Kunden simulieren, die gleichzeitig versuchen, den Hoodie zu kaufen. Ihre Aufgabe ist es sicherzustellen, dass genau 10 Hoodies verkauft werden und nicht mehr, indem Sie ein Lock verwenden, um Race Conditions zu verhindern.
- Verwenden Sie das bereitgestellte
lock-Objekt, um den Zugriff auf die gemeinsame Variablehoodies_in_stockzu synchronisieren. - In der Funktion
buy_hoodiedas Lock erwerben, bevor der Bestand geprüft und aktualisiert wird. - Simulieren Sie die Zahlungsabwicklung, indem Sie während des gehaltenen Locks eine kleine Verzögerung einbauen (z. B.
time.sleep(0.01)). - Wenn ein Hoodie verfügbar ist,
hoodies_in_stockdekrementieren und diecustomer_idzur Listedropped_customershinzufügen. - Nach Abschluss aller Threads sollten genau 10 Kunden-IDs in
dropped_customersstehen undhoodies_in_stocksollte 0 sein.
Lösung
War alles klar?
Danke für Ihr Feedback!
Abschnitt 3. Kapitel 7
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen