Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: O Bloqueio de Queda Limitada | Multithreading vs. Multiprocessing
Programação Estrutural em Python
Seção 3. Capítulo 7
single

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 lock fornecido para sincronizar o acesso à variável compartilhada hoodies_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_stock e adicione o customer_id à lista dropped_customers.
  • Após todas as threads finalizarem, exatamente 10 IDs de clientes devem estar em dropped_customers e hoodies_in_stock deve ser 0.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 7
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt