Uma das características da linguagem Java é a possibilidade de implementar...

Uma das características da linguagem Java é a possibilidade de implementar programas com múltiplas linhas de execução (multithreaded execution). Nesse contexto, é fornecido o programa em Java ab...


Uma das características da linguagem Java é a possibilidade de implementar programas com múltiplas linhas de execução (multithreaded execution). Nesse contexto, é fornecido o programa em Java abaixo.

Imagem 013.jpg

Entre as possibilidades de saída resultantes da execução do programa fornecido, inclui-se a impressão de

🚀 Desbloqueie a explicação completa

Veja comentários detalhados e resoluções exclusivas para entender o gabarito desta questão.

  • Rodrigo Ferreira
    Rodrigo Ferreira
    31/12/1969 • 21:00
    Gabarito: b) XYZ

    O programa em questão utiliza threads em Java, onde a classe Thread1 estende Thread e a classe Thread2 implementa Runnable. No método main, são criadas instâncias dessas threads e chamadas suas execuções.

    A thread Thread1, ao ser iniciada, imprime 'X' e 'Y' com um sleep entre eles, enquanto a Thread2 imprime 'Z' e 'W' também com um sleep.

    Porém, a execução das threads é concorrente, e a ordem de saída pode variar. A questão pede uma possibilidade de saída, ou seja, uma sequência que pode ocorrer.

    Analisando as opções, a saída 'XYZ' é possível, pois a Thread1 pode imprimir 'X' e 'Y' e a Thread2 pode imprimir 'Z' logo após, antes de imprimir 'W'.

    As outras opções apresentam sequências que não são possíveis pela ordem de execução e sincronização do programa, como 'ZWYZ' ou 'ZXY', que não respeitam a ordem dos prints dentro das threads.

    Portanto, a saída 'XYZ' é uma possibilidade real, confirmando o gabarito oficial.
🔒
Conteúdo restrito

Cadastre-se para visualizar comentários e resoluções.

Criar conta grátis

Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência. Política de Privacidade.