Você está aqui: Java ::: Dicas & Truques ::: Threads

Entenda o ciclo de vida de uma thread

Quantidade de visualizações: 15172 vezes
As diversas threads que criamos em nossos programas Java podem estar, a qualquer momento, em algum dos estados de threads que abordo nesta dica. Eles são: pronta, executando, bloqueada e finalizada.

Vamos detalhar cada um destes estados:

Pronta - Quando criamos uma nova thread e chamamos seu método start() ela entra no estado pronta, ou seja, seu método run() pode ser executado a qualquer momento. É importante observar que chamar start() não faz com que a thread seja executada imediatamente. O que este método faz é deixá-la pronta para execução. Vai depender do gerenciador de threads o momento no qual o método run() da thread recém-criada será executado.

Executando - Quando o método run() de uma thread é finalmente chamado ela entra no estado "executando". Uma thread em execução pode voltar ao estado "pronta" se o seu tempo de CPU expirar ou seu método yield() for chamado. Lembre-se de que chamar Thread.yield() na thread atual faz com que ela gentilmente ceda seu tempo restante de CPU para que as demais threads sejam executadas.

Bloqueada - Uma thread pode entrar no estado "bloqueada", ou seja, se tornar inativa, por várias razões. Ela, ou quaisquer outras threads, pode ter chamado os métodos join(), sleep(), wait() or lock(). Uma thread pode também estar bloqueada aguardando alguma operação de entrada/saída (I/O) ser finalizada. Quando a situação que colocou a thread como bloqueada for revertida ou seu tempo de sleep expirar, ela será reativada e entrará no estado "pronta". Novamente caberá ao gerenciador de threads colocá-la no estado "executando".

Finalizada - Quando todas as instruções contidas no método run() da thread forem concluídas, a thread terá terminado sua tarefa e será finalizada. Uma thread finalizada está "morta". Não há como chamar seu método start() novamente sem criarmos uma nova instância da mesma.

Note que o método run() de uma thread pode ser finalizado em resposta a uma condição de erro ou exceção. Esta situação também provoca a "morte" de um thread.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Um programa Java console ou GUI que exiba um número aleatório inteiro entre 0 e 10 (incluindo)

Quantidade de visualizações: 12608 vezes
Pergunta/Tarefa:

Escreva um programa Java console ou GUI que exiba um número aleatório inteiro entre 0 e 10 (incluindo). Em seguida escreva um nova versão que exiba um número aleatório entre 10 e 20 (incluindo):

Resposta/Solução:

Veja a resolução e explicação para o código Java que exibe um número aleatório entre 0 e 10 (incluindo o 0 e 10):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

O método random() da classe Math retorna um número aleatório
maior que ou igual a 0,0 e menor que 1,0. Assim, se o número
gerado for:

0.46095278727662825

e o multiplicarmos por 10, teremos 4.609527872766282. Se
aplicarmos uma conversão para inteiro teremos 4. Assim, para
garantir que o número 10 também poderá ser sorteado, basta
multiplicarmos Math.random() por 11. Veja:

public static void main(String[] args){
  // vamos gerar um número aleatório entre 0 e 10
  int numero = (int)(Math.random() * 11);

  // vamos exibir o número aleatório gerado
  System.out.println("O número gerado foi: " + numero);
}

Para sortear um número aleatório entre 10 e 20, só precisamos
somar 10 ao número gerado. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public static void main(String[] args){
  // vamos gerar um número aleatório entre 10 e 20
  int numero = 10 + (int)(Math.random() * 11);

  // vamos exibir o número aleatório gerado
  System.out.println("O número gerado foi: " + numero);
}



Java ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar a instrução switch do Java

Quantidade de visualizações: 64650 vezes
Quando precisamos escolher entre múltiplos caminhos alternativos e esta escolha pode ser baseada em um valor inteiro, a instrução switch é uma boa opção. Veja seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String[] args){
    int valor = 4;

    switch(valor){
      case 1:
        System.out.println("Valor é 1"); 
        break;
      case 2:
        System.out.println("Valor é 2"); 
        break;
      case 3:
        System.out.println("Valor é 3"); 
        break;
      default:
        System.out.println("Valor diferente de 1, 2 e 3"); 
        break;
    }   
  }
}

A variável fornecida à instrução switch deve ser do tipo byte, short, char, ou int. Ela não pode ser long, float, double, boolean ou referência a objetos. Veja o que acontece quando tentamos usar uma variável do tipo long:

Estudos.java:5: possible loss of precision
found   : long
required: int
    switch(valor){
           ^
1 error



Java ::: Coleções (Collections) ::: ArrayList

Como obter o índice da primeira ocorrência de um elemento no ArrayList do Java usando o método indexOf()

Quantidade de visualizações: 12335 vezes
Este exemplo mostra como usar o método indexOf() para obter o índice da primeira ocorrência de um item na ArrayList. Se o ítem não for encontrado, o valor retornado é -1.

Veja o código completo para a dica:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.ArrayList;
 
public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
     
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");
    nomes.add("Maria");    
     
    // obtém o índice da primeira ocorrência do
    // nome "Maria"
    int indice = nomes.indexOf("Maria");
 
    System.out.println("O índice do nome pesquisado é: " 
       + indice); 
 
    System.exit(0);
  }
}

Ao executar este código nós teremos o seguinte resultado:

O índice do nome pesquisado é: 1


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 18 usuários muito felizes estudando em nosso site.