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

Como usar o método yield() para parar a thread atual e ceder a CPU para outras threads

Quantidade de visualizações: 13105 vezes
Quando uma thread está sendo executada ela pode se oferecer para se mover para fora da CPU virtual e ceder seu tempo de execução para outras threads. Isso é feito com uma chamada ao método estático yield() da classe Thread.

Quando este método é chamado, a thread atual é movida do estado "executando" para o estado "pronta". Desta forma, o gerenciador de threads pode iniciar a execução das demais threads disputando o tempo da CPU. Veja um exemplo:

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

// criamos uma classe que servirá como thread
class MinhaThread implements Runnable{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);

      if((i % 3 == 0) && (nome.equals("Thread 1"))){
        System.out.println(nome + " foi descansar um pouco");
        Thread.yield(); // cede o tempo de CPU para as demais threads        
      }
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread mt1 = new MinhaThread("Thread 1");
    Thread t1 = new Thread(mt1);
    t1.start();    

    MinhaThread mt2 = new MinhaThread("Thread 2");
    Thread t2 = new Thread(mt2);
    t2.start();
  }
}

Ao executar este código você perceberá que a primeira thread cede o tempo da CPU, ou seja, se oferece para ser movida para fora da CPU virtual, a cada três valores impressos. Quando isso acontece a segunda thread é movida do estado "pronta" para o estado "executando". Note, contudo, que não há comportamente previsível em relação a uma thread ceder o tempo de execução para outra. É preciso, antes de tudo, nos inteirarmos da forma pela qual o gerenciador de threads escolhe qual a próxima thread a ser executada, se há considerações em relações à prioridades das threads, etc. Pode ainda acontecer de uma thread ceder seu tempo de execução e continuar executando, talvez pela ausência de outras threads no estado "prontas".

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Exercícios Resolvidos de Java - Como retornar o código ASCII associado a um caractere em Java - Ler um caractere e retornar o código ASCII correspondente

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

Escreva um programa Java que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente.

Sua saída deverá ser parecida com:

Informe um caractere: A
Você informou o caractere: A
O código ASCII correspondente é: 65
Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

Este código completo faz parte do nosso E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas.
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book


O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos.


Java ::: Dicas & Truques ::: Data e Hora

Como obter a data completa formatada em português usando vetores e um objeto da classe Calendar do Java

Quantidade de visualizações: 89 vezes
Nesta dica mostrarei como é possível combinar dois vetores de string contendo os nomes do dias e os nomes dos meses e um objeto da classe Calendar da linguagem Java para exibir a data completo em português. Este é um bom exercício para entender o uso de vetores em Java e as partes individuais que compoem uma data retornada pelo método getInstance() da classe Calendar.

Veja o código completo para o exemplo:

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

package arquivodecodigos;

import java.util.Calendar;
 
public class Estudos{
  public static void main(String args[]){
    String dias[] = {"Domingo", "Segunda-feira", "Terça-feira",
      "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"};
    String meses[] ={"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", 
       "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"};
        
    Calendar agora = Calendar.getInstance(); 
    System.out.println("A date é: " + dias[agora.get(Calendar.DAY_OF_WEEK) - 1] +
      ", " + agora.get(Calendar.DAY_OF_MONTH) + " de " +
      meses[agora.get(Calendar.MONTH)] +
      " de " + agora.get(Calendar.YEAR));    
  }
}

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

A date é: Sábado, 20 de Março de 2020


Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o diâmetro, a circunferência e a área de um círculo dado o raio em Java - Java para Geometria

Quantidade de visualizações: 2143 vezes
O círculo é uma figura geométrica plana e que possui quatro características: seu raio, seu diâmetro, sua circunferência e sua área. Aqui já podemos aproveitar e relembrar a diferença entre o círculo e a circunferência. O círculo é o conjunto de pontos resultantes da união entre uma circunferência e seus pontos internos, ou seja, o círculo é a área cuja delimitação é uma circunferência.

É importante observar que alguns autores tratam o círculo como uma circunferência. Assim, para estes autores, calcular a circunferência de um círculo equivale a calcular o perímetro da circunferência.

Veja a figura a seguir para relembrar o que é o raio de um círculo:



Nesta dica mostrarei como podemos usar Java para calcular o diâmetro, a circunferência e a área de um círculo tendo apenas o raio como informação. Antes, porém, vamos às formulas. Sabendo que r é o raio, temos:

\[\text{Diâmetro d} = 2 \times r \]

\[\text{Circunferência C} = 2 \times \pi \times r \]

\[\text{Área A} = \pi \times r^2 \]

Agora vamos ver o código Java que solicita ao usuário que informe o raio do círculo e mostra o diâmetro, a circunferência e a área:

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

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler o raio do círculo
    System.out.print("Informe o raio do círculo: ");
    double raio = Double.parseDouble(entrada.nextLine());
    
    // vamos achar o diâmetro do círculo
    double diametro = 2 * raio;
    // agora calculamos a circunferência
    double circunferencia = 2 * Math.PI * raio;
    // finalmente calculamos a área do círculo
    double area = Math.PI * Math.pow(raio, 2);
    
    // vamos mostrar os resultados
    System.out.println("O diâmetro do círculo é: " +
      diametro);
    System.out.println("A circunferência do círculo é: " +
      circunferencia);
    System.out.println("A área do círculo é: " + area);
  }
}

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

Informe o raio do círculo: 10
O diâmetro do círculo é: 20.0
A circunferência do círculo é: 62.83185307179586
A área do círculo é: 314.1592653589793

Lembre-se de que a área é em centímetros quadrados, metros quadrados, etc.


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: C
6º lugar: Delphi
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á 93 usuários muito felizes estudando em nosso site.