Java ::: Dicas & Truques ::: Threads |
Threads em Java - O que são threads e como usá-las em seus programas JavaQuantidade de visualizações: 13892 vezes |
|
Uma thread é um fluxo de execução de uma determinada tarefa em um programa. Na programação tradicional, temos apenas um fluxo de execução que começa a executar no início do programa e vai até o final. Com o uso de threads podemos ter várias tarefas sendo executadas ao mesmo tempo, cada uma independente da outra. Em programas que contêm interfaces gráficas, o uso de múltiplos fluxos de execução (ou threads) é muito comum. Enquanto digitamos em uma caixa de texto, uma animação pode estar sendo executada ou um arquivo sendo baixado. O Java permite que tenhamos várias threads sendo executadas ao mesmo tempo. Cada tarefa (ou thread) é uma instância da interface Runnable. Esta interface descreve apenas um método: public void run();
// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
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);
}
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar duas threads
MinhaThread t1 = new MinhaThread("Thread 1");
t1.start(); // chamamos o método start() e não run()
MinhaThread t2 = new MinhaThread("Thread 2");
t2.start(); // chamamos o método start() e não run()
System.exit(0);
}
}
Salve este código como Estudos.java, compile e execute. Veja que cada thread escreverá de 1 a 20 na tela. Observe como as duas threads se alternam em suas tarefas, ou seja, de tempos em tempos uma cede lugar para que a outra seja executada. Note também que, embora nossa classe tenha um método run() nós não o chamamos. O que fazemos é chamar o método start(), que torna a thread elegível para ser executada a qualquer momento. Uma outra forma de criarmos uma thread é fazer com que nossa classe implemente a interface Runnable. Veja:
// 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);
}
}
}
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();
System.exit(0);
}
}
O funcionamento do código é o mesmo. A diferença é que agora, a classe usada como thread implementa a interface Runnable. A forma de criação da thread também foi alterada. Agora nós criamos instâncias de Thread fornecendo nossa classe thread como argumento e chamamos o método start da classe Thread e não de nossa própria classe, como fizemos anteriormente. |
C# ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em C#Quantidade de visualizações: 3511 vezes |
Muitas vezes precisamos saber se um determinado número é par ou ímpar. Isso pode ser feito em C# usando-se o operador de módulo %, que retorna o resto de uma divisão entre números inteiros. Veja:
static void Main(string[] args){
Console.Write("Informe um valor inteiro: ");
int num = int.Parse(Console.ReadLine());
if(num % 2 == 0){
Console.WriteLine("Você informou um numero par");
}
else{
Console.WriteLine("Você informou um numero impar");
}
Console.WriteLine("\nPressione qualquer tecla para sair...");
// pausa o programa
Console.ReadKey();
}
Ao executar este programa C# nós teremos o seguinte resultado: Informe um valor inteiro: 8 Você informou um numero par |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como adicionar mais texto a um JTextArea usando o método append()Quantidade de visualizações: 1 vezes |
|
Nesta dica mostrarei como é possível usar o método append() da classe JTextArea para adicionar mais conteúdo a esse controle. Esta é uma técnica muito importante no desenvolvimento de aplicações Java Swing. Segue um exemplo completo (note que fiz toda a aplicação Java Swing na mão mesmo, ou seja, não usei o editor visual do NetBeans ou semelhantes):
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame {
JTextArea textArea;
JTextField texto;
JButton btn;
public Estudos() {
super("Como adicionar texto a um JTextArea");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
textArea = new JTextArea(10, 20);
texto = new JTextField(10);
btn = new JButton("Adicionar Texto");
btn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.append(texto.getText());
}
}
);
c.add(textArea);
c.add(texto);
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]) {
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Veja que neste exemplo, mais conteúdo é adicionado ao controle JTextArea sem provocar uma quebra de linha. Em outras dicas e truques dessa seção você aprenderá como isso pode ser feito. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de C - Usando um laço for para percorrer os elementos de uma matriz e exibir a soma dos valores positivos e a quantidade de valores negativosQuantidade de visualizações: 12099 vezes |
|
Exercícios Resolvidos de C - Usando um laço for para percorrer os elementos de uma matriz e exibir a soma dos valores positivos e a quantidade de valores negativos Pergunta/Tarefa: Considere a seguinte matriz de inteiros:
// uma matriz de inteiros contendo sete elementos
int valores[] = {-3, 9, 12, -34, -2, 20, 10};
Escreva um programa C que usa um laço for para percorrer todos os elementos desta matriz e exibir a soma dos valores positivos e a quantidade de valores negativos. Seu programa deverá exibir uma saída com a mensagem: A soma dos valores positivos é: 51 A quantidade de valores negativos é: 3 Resposta/Solução: Veja abaixo a resolução completa para esta tarefa:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// uma matriz de inteiros contendo sete elementos
int valores[] = {-3, 9, 12, -34, -2, 20, 10};
// o primeiro passo é criar uma variável que vai receber a soma
// dos valores positivos
int soma_positivos = 0;
// agora uma variável para receber a quantidade de valores negativos
int quant_negativos = 0;
int i;
// agora vamos usar uma laço for para percorrer todos os elementos
// da matriz
for(i = 0; i < 7; i++){
// vamos verificar se o valor do elemento atual é negativo
if(valores[i] < 0){
quant_negativos++;
}
else{ // o valor é positivo
soma_positivos = soma_positivos + valores[i];
}
}
// vamos exibir a soma dos valores positivos
printf("A soma dos valores positivos é: %d\n", soma_positivos);
// vamos exibir a quantidade de valores negativos
printf("A quantidade de valores negativos é: %d\n", quant_negativos);
system("PAUSE");
return 0;
}
|
Nossas 20 dicas & truques de programação mais populares |
|
Java - Java Swing para iniciantes - Como criar seu primeiro aplicativo de interface gráfica em Java Swing GNU Octave - Como calcular o comprimento da hipotenusa em GNU Octave dadas as medidas do cateto oposto e do cateto adjascente |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Python - Como obter o resto de uma divisão de inteiros em Python - O operador módulo % da linguagem Python Delphi - Como retornar o caractere a partir de um determinado código ASCII em Delphi usando a função Chr() |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





