Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Le Confinement à Goutte Limitée | Multithreading vs. Multiprocessing
Concepts Avancés de Python
Section 3. Chapitre 7
single

single

Défi : Le Confinement à Goutte Limitée

Glissez pour afficher le menu

Tâche

Glissez pour commencer à coder

Une marque célèbre lance un hoodie en édition limitée avec seulement 10 exemplaires disponibles. Cinquante threads simulent des clients essayant d’acheter le hoodie simultanément. L’objectif est de garantir que exactement 10 hoodies soient vendus, pas plus, en utilisant un verrou pour éviter les conditions de concurrence.

  • Utiliser l’objet lock fourni pour synchroniser l’accès à la variable partagée hoodies_in_stock.
  • Dans la fonction buy_hoodie, acquérir le verrou avant de vérifier et de mettre à jour le stock.
  • Simuler le traitement du paiement en ajoutant un court délai (par exemple, time.sleep(0.01)) tout en maintenant le verrou.
  • Si un hoodie est disponible, décrémenter hoodies_in_stock et ajouter le customer_id à la liste dropped_customers.
  • Après l’exécution de tous les threads, exactement 10 identifiants clients doivent figurer dans dropped_customers, et hoodies_in_stock doit être égal à 0.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 7
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt