Sezione 3. Capitolo 7
single
Sfida: Il Blocco a Rilascio Limitato
Scorri per mostrare il menu
Compito
Scorri per iniziare a programmare
Un famoso marchio sta lanciando una felpa in edizione limitata con solo 10 pezzi disponibili. Ci sono 50 thread che simulano clienti che cercano di acquistare la felpa contemporaneamente. Il tuo compito è garantire che vengano vendute esattamente 10 felpe, non di più, utilizzando un lock per prevenire condizioni di race.
- Utilizza l'oggetto
lockfornito per sincronizzare l'accesso alla variabile condivisahoodies_in_stock. - Nella funzione
buy_hoodie, acquisisci il lock prima di controllare e aggiornare lo stock. - Simula l'elaborazione del pagamento aggiungendo un piccolo ritardo (ad esempio,
time.sleep(0.01)) mentre il lock è attivo. - Se una felpa è disponibile, decrementa
hoodies_in_stocke aggiungi ilcustomer_idalla listadropped_customers. - Dopo che tutti i thread hanno terminato, esattamente 10 ID cliente dovrebbero essere presenti in
dropped_customersehoodies_in_stockdovrebbe essere 0.
Soluzione
Tutto è chiaro?
Grazie per i tuoi commenti!
Sezione 3. Capitolo 7
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione