Seção 3. Capítulo 7
single
Desafio: O Bloqueio de Queda Limitada
Deslize para mostrar o menu
Tarefa
Deslize para começar a programar
Uma marca famosa está lançando um moletom de edição limitada com apenas 10 unidades disponíveis. Existem 50 threads simulando clientes tentando comprar o moletom ao mesmo tempo. Sua tarefa é garantir que exatamente 10 moletons sejam vendidos, sem exceder esse número, utilizando um lock para evitar condições de corrida.
- Utilize o objeto
lockfornecido para sincronizar o acesso à variável compartilhadahoodies_in_stock. - Na função
buy_hoodie, adquira o lock antes de verificar e atualizar o estoque. - Simule o processamento do pagamento adicionando um pequeno atraso (por exemplo,
time.sleep(0.01)) enquanto estiver com o lock. - Se houver um moletom disponível, decremente
hoodies_in_stocke adicione ocustomer_idà listadropped_customers. - Após todas as threads finalizarem, exatamente 10 IDs de clientes devem estar em
dropped_customersehoodies_in_stockdeve ser 0.
Solução
Tudo estava claro?
Obrigado pelo seu feedback!
Seção 3. Capítulo 7
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo