Programação Orientada a Objetos COM230
Semana 7Questão
Você pode criar uma thread na linguagem de programação Java estendendo a classe Thread, implementando Runnable ou usando a estrutura Executor em Java. Lembre-se de que Runnable não representa Thread; na verdade, é uma tarefa executada por outra Thread. Nesse contexto, “no streaming de áudio ou vídeo pela internet, talvez o usuário não queira esperar até que todo o áudio ou vídeo seja baixado antes de iniciar a reprodução. Para resolver esse problema, múltiplas threads podem ser usadas – uma para baixar o áudio ou vídeo e outra para reproduzi-lo. Essas atividades prosseguem concorrentemente. Para evitar reprodução instável, as threads são sincronizadas (isto é, suas ações são coordenadas) para que a thread do player só comece depois que houver uma quantidade suficiente de áudio ou vídeo na memória para manter a thread do player ocupada” (DEITEL; DEITEL, 2016, p. 749).
DEITEL, P.; DEITEL, H. Java: como programar. 10. ed. São Paulo: Pearson Education do Brasil, 2016.
Com base no texto e em conceitos de programação concorrente e threads, observe as afirmativas a seguir.
I. No nível do sistema operacional, geralmente, dois estados separados participam do chamado estado executável na thread Java. O sistema operacional omite esses estados da Java Virtual Machine (JVM), vendo somente o estado em execução.
II. Todo aplicativo Java tem pelo menos uma thread– thread principal, embora existam tantos outros encadeamentos Java em execução em segundo plano como gerenciamento de memória, gerenciamento de sistema, processamento de sinal etc.
III. Não é possível determinar uma prioridade de atendimento das threads. Como todas devem executar simultaneamente, o sistema sempre vai se basear no FIFO – primeiro que chega, primeiro que sai.
Está correto o que se afirma em: