SóProvas


ID
320833
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Em relação ao uso de threads na linguagem Java, assinale a opção correta.

Alternativas
Comentários
  • The join method allows one thread to wait for the completion of another. If t is a Thread object whose thread is currently executing,

    		t.join();

    causes the current thread to pause execution until t's thread terminates. Overloads of join allow the programmer to specify a waiting period. However, as with sleep, join is dependent on the OS for timing, so you should not assume that join will wait exactly as long as you specify.

    Like sleep, join responds to an interrupt by exiting with an InterruptedException.

    Fonte: http://download.oracle.com/javase/tutorial/essential/concurrency/join.html

  • a ) yield - O método yield é um método stático, causa que o objeto thread atualmente em execução pause e permite que outras threas executem.

    b ) join  - O método join é um método de objeto ou seja não é static. A chamada deste método obrigada a esperar a thread morrer para começar a ser executada. Exemplo: thread1 chama o método thread2.join() então thread1 vai esperar a thread2 terminar para continuar.

    c) Java permite dois tipos de sincronização: Sincronização de métodos e Sincronização de blocos de instruções.

    d ) synchronized - Java permite que métodos static sejam synchronized.

    e)
    Toda thread recebe uma prioridade padrão NORM_PRIORITY que possui o valor de 5.

    Fonte: http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html; http://download.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html; http://download.oracle.com/javase/1.4.2/docs/api/constant-values.html#java.lang.Thread.NORM_PRIORITY
  • A dica do Join, é Comparar esse JOIN com o que existe no SQL. O do SQL é utilizado para relacionamento de duas tabelas. Imagine que o JOIN usado em threads relacionará duas Threads de forma que uma só poderá ser executada quando a outra terminar.
  • Obrigada Emanuel Cordeiro, pela sua explicação deu para entender.
  • O método yield não força um thread a entrar no modo de suspensão (bloqueio) e sim para o estado de pronto, visto que ele permite que outras threads com a mesma prioridade tenham sua oportunidade de serem processadas
  • yield() é um método estático (Thread.yield()) que retorna o thread sendo executado para o estado de executável. O estado executável é diferente de suspenso/espera/bloqueio. O método yield() dá a oportunidade de outra thread, que faz parte do pool de executáveis e que tenha mesmo nível de prioridade, seja selecionada para em execução, no entanto, nada garante que a thread que cedeu seu espaço não seja selecionada novamente.

  • inativo = morto? não seria inativo=suspenso/bloqueado?

  • Repsosta - B :O método join é utilizado para garantir que determinado thread não seja executado até que outro tenha entrado no estado inativo