Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Participe do fórum, é rápido e fácil

Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!
Vilarejo PK2P
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.

Últimos assuntos

» RPG de Mesa: A fronteira Volume 4: O Castelo Owlrick. (D&D5e)
por Ariano 10/12/2020, 23:18

» [tutorial] hash em C/C++ com openssl
por kodo no kami 21/9/2020, 13:37

» ping lista grafico
por kodo no kami 24/7/2020, 07:53

» [Discord] Campanha de RPG D-cyber
por Jonatan15 17/7/2020, 11:11

» [tradução] 1869 (msdos)
por kodo no kami 26/6/2020, 13:43

» [source] exemplo filtro mediano
por kodo no kami 1/6/2020, 00:24

» [tutorial] criar filtro nas imagens (python)
por kodo no kami 22/5/2020, 19:29

» Wireless IDS Sagemcom
por kodo no kami 22/4/2020, 23:50

» [source] detectar dispositivos no wifi (sagemcom)
por kodo no kami 9/3/2020, 20:25

» [tutorial] wla assemblador (65xx, 68xx, z80, 8008, 8080 e huc6280)
por kodo no kami 2/2/2020, 16:42


Você não está conectado. Conecte-se ou registre-se

[tutorial] threads em java

Ir para baixo  Mensagem [Página 1 de 1]

1[tutorial] threads em java Empty [tutorial] threads em java 22/10/2017, 06:57

kodo no kami

kodo no kami

e ae galera blz? nesse tutorial vamos aprender como criar threads em java a pedido do Lucas_Gamer13. uma thread seria um forma de executar trechos do codigo de forma paralela naquele programa, isso evita do programa ficar preso em um determinado  loop e ter que esperar terminar para conseguir executar aquele outro trecho de codigo, threads seria como ter um subprocesso do mesmo porem, compartilhando o mesmo trecho de memoria daquele programa. uma das formas de criar threads em java seria criar uma classe que vamos rodar em paralelo, nessa classe temos que implementar a interface Runnable

Código:
class NovaThread implements Runnable{
}

public class Principal {
    public static void main(String[] args) {
    }
}

naquela classe tambem temos que criar um metodo run que sera executado quando a thread for iniciada

Código:
class NovaThread implements Runnable{
    public void run(){
    }
}

public class Principal {
    public static void main(String[] args) {
    }
}

na nossa classe principal a gente instancia um objeto daquela classe


Código:
class NovaThread implements Runnable{
    public void run(){
    }
}

public class Principal {
    public static void main(String[] args) {
 NovaThread nova = new NovaThread();
    }
}

instanciamos um objeto do tipos Thread passando como argumento o objeto que vamos usar como a thread

Código:
class NovaThread implements Runnable{
    public void run(){
    }
}

public class Principal {
    public static void main(String[] args) {
 NovaThread nova = new NovaThread();
 Thread minhathread = new Thread(nova);
    }
}

agora podemos iniciar ela com o metodo start

Código:
class NovaThread implements Runnable{
    public void run(){
    }
}

public class Principal {
    public static void main(String[] args) {
 NovaThread nova = new NovaThread();
 Thread minhathread = new Thread(nova);
 minhathread.start();
    }
}

no exemplo anterior tanto a minha classe principal quanto a minha classe NovaThread estara rodando de forma paralela ao mesmo tempo. para mostrar isso vou prender as duas classes em um loop infinito e ter uma saida

Código:
class NovaThread implements Runnable{
    public void run(){
 while(true){
    System.out.println("kami");
 }
    }
}

public class Principal {
    public static void main(String[] args) {
 NovaThread nova = new NovaThread();
 Thread minhathread = new Thread(nova);
 minhathread.start();
 
 while(true){
    System.out.println("kodo");
 }
    }
}

[tutorial] threads em java MD2nmn6

podemos criar quantas threads a gente quiser

Código:
class NovaThread implements Runnable{
    public void run(){
 while(true){
    System.out.println("kami");
 }
    }
}

class OutraThread implements Runnable{
    public void run(){
 while(true){
    System.out.println("nova thread");
 }
    }
}

public class Principal {
    public static void main(String[] args) {
 NovaThread nova = new NovaThread();
 OutraThread outra = new OutraThread();
 
 Thread minhathread = new Thread(nova);
 Thread minhathread2 = new Thread(outra);
 
 minhathread.start();
 minhathread2.start();
 
 while(true){
    System.out.println("kodo");
 }
    }
}

outra forma de usar thread seria herdar a classe Thread

Código:
class NovaThread extends Thread{
    public void run(){
 while(true){
    System.out.println("kami");
 }
    }
}

public class Principal {
    public static void main(String[] args) {
 NovaThread nova = new NovaThread();
 Thread minhathread = new Thread(nova);
 minhathread.start();
 
 while(true){
    System.out.println("kodo");
 }
    }
}

um dos problemas em usar threads no programa seria os exemplos anteriores, onde não sera exibido sequencialmente a saida e sim existe a possibilidade de uma ou outra saida ser exibida naquele momento, embora ambas esteja sendo executadas ao mesmo tempo so podemos ter uma unica saida. outro problema que pode surgir por causa do uso das threads é uma vuln chamada de race condition onde tentamos modificar um determinado estado de forma paralela que depende do valor atual do proprio estado sendo que o valor atual vai ser o mesmo em ambos, um exemplo seria uma variavel global onde incrementamos ela usando duas threads, se ambas as threads acabar lendo o valor atual ao mesmo tempo exemplo o valor 0 então ambas as threads tera o valor 0 para ser incrementado, depois de incrementar esse valor e armazenar ele na variavel o resultado final naquela variavel sera o numero 1 e nao o 2 como deveria ser. existem meios de contornar esses problemas de sincronização como mutex, semaforos e filas.

by kodo no kami

https://eofclub.in/forum

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos