Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By calves_oliveira
      Pessoal, não tenho conhecimento em Thread e em Timer mas consegui criar esses dois métodos porém está com um erro e não consigo resolver, a idéia é o seguinte: um classe manda uma jlabel para o método mostraLabel e ele chama o outro método desizaLabel os dois metodos abaixo vai apresentar a mensagem durante 3 segundos e dois deslizar para sair da tela.
      Sei que tem um erro no loop do metodo deslizaLabel pois ele esta com loop infinito mas não consigo tirar… quero que ao jlabel deslizar até o fim do form ele finalize o Thread.
      e também se alguém tiver alguma sugestão de como otimizar esse processo será bem vindo.
      public void mostraLabel(JLabel lbl) { ActionListener action = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { tempo.stop(); deslizaLabel(lbl); } }; tempo = new Timer(3000, action); tempo.start(); } private void deslizaLabel(JLabel lbl){ new Thread(){ @Override public void run(){ int x = 0; int y = lbl.getLocation().y; while(true){ x++; if(x > lbl.getWidth()){ this.stop(); } lbl.setLocation(x,y); try { sleep(10); } catch (InterruptedException ex) { } } } }.start();}  
    • By Mayara Andres
      Olá, preciso implementar um código java usando threads, como o anunciado da atividade pede: 
       
      "O trabalho consiste em alterar o código que busca valores dentro de um vetor (disponível no blackboard) de forma a criar N threads de acordo com a vontade do usuário (ler o número de threads que o usuário deseja criar) e buscar um valor no vetor (apenas 1, também inserido pelo usuário) de forma paralela, ou seja, cada thread criada deve procurar por um região diferente do vetor. Ao final da execução mostre qual foi a thread que encontrou o valor."
       
      PS: EU SÓ QUERO SABER POR ONDE EU COMEÇO, A LÓGICA EU ENTENDI, SÓ NÃO SEI COMO FAZER. 

      classe thread_busca
       
      package trabalho_thread; import java.util.logging.Level; import java.util.logging.Logger; class ThreadBusca extends Thread { private int vetor[]; private int numeroProcurar; public ThreadBusca(int[] vet, int numeroProcurar) { this.vetor = vet; this.numeroProcurar = numeroProcurar; } @Override public void run() { for (int i = 0; i < vetor.length; i++) { if (vetor[i] == numeroProcurar) { System.out.println("Indice de "+numeroProcurar+" eh "+i); return; } try { Thread.sleep(10); } catch (InterruptedException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } System.out.println("Indice de "+numeroProcurar+" eh -1"); } } classe main
      package trabalho_thread; import java.util.Arrays; import java.util.Random; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { int vet[] = new int[200]; Random random = new Random(); for(int i=0;i<200;i++){ vet[i] = random.nextInt(4999)+1; } System.out.println(Arrays.toString(vet)); int numero=-1; do{ numero = Integer.parseInt(JOptionPane.showInputDialog("Numero a pesquisar:")); new ThreadBusca(vet, numero).start(); }while(numero>0); } }  
    • By Igor1788
      Galera, to compartilhando um curso mega útil.
       
      Em uma página web moderna pode conter diversas imagens e muitas vezes essas nem chegam a ser vistas pelo usuário, pois o mesmo pode clicar em um link e já navegar para outro conteúdo, não é verdade? No desenvolvimento de uma aplicação web, por exemplo, acabamos carregando todas as imagens mesmo sem necessidade, o que atrapalha e muito o tempo de carregamento e aumenta o consumo de banda desnecessariamente. Existe uma técnica chamada Lazy Load que resolve exatamente esse problema, ou seja, as imagens são carregadas apenas quando aparecem na área visível do navegador.

      https://preview.ibb.co/kEwDOH/curso_lazy_load_1.png 
      https://preview.ibb.co/jOiciH/curso_lazy_load_2.png 

      Se liga aqui para ver os cursos, completos e grátis:

      https://youtu.be/86wxusfp000 
      https://youtu.be/IKznPWVgDKg 
      https://youtu.be/8JW2kH4spk0 
      https://youtu.be/NWE_2Sz7cjg 
      https://youtu.be/R3ZwASzR0m8 
      https://youtu.be/BBqD-oJTg7s
    • By chrislix
      Alguem poderia me ajudar?
      estou tentando multiplicar duas matrizes, A e B
      e salvar o resultado em C
      o resultado nao ta certo, to usando thread
      so queria uma opinião para saber se ta certo o que to fazendo, pq o que ta me intrigando eh que os valores da linha da matriz C nao altera
      #include<stdio.h> #include<stdlib.h> #include<pthread.h> pthread_t thread_1; pthread_t thread_2; pthread_t thread_3; int a[3][2] = {{1, 4}, {2, 5}, {3, 6}}; int b[2][3] = {{7, 8, 9}, {10, 11, 12}}; int c[3][3] = {{1, 2, 3}, {0, 0, 0}, {0, 0, 0}}; void* tarefa_1(void *p) { printf("\nThread1\n"); for (int col = 0; col < 3; col++) { // Multiplica a linha de A pela coluna de B. for (int i = 0; i < 2; i++) { c[1][col] += a[1][i] * b[i][col]; } printf("%i\t",c[1][col]); printf("\n"); } } void* tarefa_2(void *p) { printf("\nThread2\n"); for (int col = 0; col < 3; col++) { // Multiplica a linha de A pela coluna de B. for (int i = 0; i < 2; i++) { c[2][col] += a[2][i] * b[i][col]; } printf("%i\t",c[2][col]); printf("\n"); } } void* tarefa_3(void *p) { printf("\nThread3\n"); for (int col = 0; col < 3; col++) { // Multiplica a linha de A pela coluna de B. for (int i = 0; i < 2; i++) { c[3][col] += a[3][i] * b[i][col]; } printf("%i\t",c[3][col]); printf("\n"); } } int main() { printf("Inicio das Threads...\n"); // inicia as duas threads, passando como parametroa thread e a função que cada uma deve executar pthread_create(&thread_1, NULL, tarefa_1, NULL); pthread_create(&thread_2, NULL, tarefa_2, NULL); pthread_create(&thread_3, NULL, tarefa_3, NULL); // faz com que a thread principal espere a thread 1,2,3 acabarem; pthread_join(thread_1, NULL); pthread_join(thread_2, NULL); pthread_join(thread_3, NULL); printf("resultado da tabela 3\n"); for(int i = 0;i<3; i++){ for(int j= 0; j<3;j++){ printf("%i\t ",c[i][j]); } printf("\n"); } exit(0); }
    • By brunomf01
      Olá, bom dia...
      Estou com um probleminha que é o seguinte:
      Estou tentando salvar o conteudo de Log que fica armazenado em um Tmemo.
      #código
      Log.Lines.SaveToFile(ExtractFileDir(ParamStr(0)) + '\Erros '+FormatDateTime('dd-mm-yy',Date)+' '+FormatDateTime('hhmmss',Time)+'.sql'); blza... usando o codigo acima eu consigo salvar executando o programa normalmente sem Thread e eu consigo o Resultado que eu espero.
      Porém,
      como se trata de um conversor de base de dados, eu uso um componente pageControl para navegar entre a tela de conversao e a tela de Log é necessario rodar os processos dentro de uma Thread (o que tbm ajuda a nao dar uma impressao de sistemma travado para o usuario)...
      Ate aqui o sistema esta 99%.. mas falta esse um por cento de que na hora de eu gravar o Tmemo (Log) some da tela do sistema. O arquivo é salvo normalmente, porem some o que deveria ficar na tela... Acho q ficou um pouco confuso porque meu problema nao é exatamente pra salvar de primeira vez, pq ate funciona.. mas caso eu mandar converter novamente sem fechar o programa ele nao vai salvar nada no log pq aparentemente o sistema esta destruindo o componente Tmemo, pois nem com o comando:
      #código
      Log.Visible := True; ele nao volta a mostrar na tela....
      se alguem puder de dar uma luz nesse problema eu ficaria grato...
      eu chamo assim a Thread:
      #código
      procedure TF_inicial.SpeedButton1Click(Sender: TObject);
      var thread: ExecutaProcessos; begin thread := ExecutaProcessos.Create(false); thread.FreeOnTerminate := True; thread.Resume; end; att...
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.