Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Challenge: Die Begrenzte Drop-Sperre | Multithreading vs. Multiprocessing
Python Fortgeschrittene Konzepte
Abschnitt 3. Kapitel 7
single

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 Variable hoodies_in_stock zu synchronisieren.
  • In der Funktion buy_hoodie das 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_stock dekrementieren und die customer_id zur Liste dropped_customers hinzufügen.
  • Nach Abschluss aller Threads sollten genau 10 Kunden-IDs in dropped_customers stehen und hoodies_in_stock sollte 0 sein.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 7
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt