Carregando...
Carregando...
Ajude a melhorar a plataforma
A implementação de uma fila ou de uma pilha deve oferecer um bom desempenho por compor programas usados diariamente por usuários em seus cotidianos, assim, da mesma forma para as filas, a implementação de pilhas pode utilizar uma lista como estrutura para armazenamento dos dados, exigindo que se defina como será o funcionamento de tal estrutura.
Após análise da situação apresentada, avalie as asserções a seguir e a relação proposta entre elas.
I - Para que uma fila seja manipulada corretamente, deve-se considerar métodos adicionais e restrições devido aos vários tipos de fila como Queue (FIFO, First In, First Out), LifoQueue (Last In, First Out) e PriorityQueue (por ordem crescente de valor).
POIS
II - O módulo integrado do Python queue pode ser utilizado tanto para filas quanto para pilhas de forma a oferecer um apoio na programação encadeada quando as informações devem ser trocadas com segurança entre vários encadeamentos.
A respeito dessas asserções, assinale a alternativa correta.
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa A - As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I
O gerenciamento de dados em estruturas lineares requer a escolha de bibliotecas que garantam não apenas a lógica correta (como FIFO ou LIFO), mas também a segurança na execução, especialmente em ambientes onde múltiplos processos ou threads ocorrem simultaneamente.
Queue (FIFO), LifoQueue (Pilha/LIFO) e PriorityQueue. Cada uma possui métodos específicos e restrições que garantem o comportamento desejado da estrutura.queue foi projetado especificamente para ser "thread-safe". Em programação paralela, se várias threads tentarem acessar uma lista comum ao mesmo tempo, podem ocorrer erros de condição de corrida. O módulo queue resolve isso integrando travas (locks) internamente.A asserção II justifica a I porque a existência desses tipos variados no módulo queue (com seus métodos e restrições) é justamente o que permite que o programador troque informações entre threads de forma segura e organizada, dependendo da necessidade lógica (ordem de chegada, ordem inversa ou prioridade).
Ambas as afirmações estão corretas e a necessidade de segurança em threads (II) explica por que a implementação correta dessas estruturas através do módulo queue (I) é fundamental.
Alternativa A.