Ir ao conteúdo
  • Cadastre-se

Thread e Sleep


Ir à solução Resolvido por Renanfdo,

Posts recomendados

Boa tarde galera, estou tentando dar um sleep na minha Thread de 10 segundos porém,

 

o print dos 10 segundos não está funcionando veja o exemplo abaixo:

 

Iniciando Pedido 1
Dados do início do pedido: 27/03/2015 - 11:56:47
Dados do término do pedido: 27/03/2015 - 11:56:47
---------------------------------------
 
Iniciando Pedido 2
Dados do início do pedido: 27/03/2015 - 11:56:57
Dados do término do pedido: 27/03/2015 - 11:56:57
---------------------------------------
 
Era para ter uma diferença de 10 segundos entre os horários de início e termino, segue me código abaixo:
package prog.conc;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;public class teste implements Runnable{	private int contador;		public teste(){	contador = 1;	}				public void run(){		try {			while(true){			GregorianCalendar calendario = new GregorianCalendar();			SimpleDateFormat formatar = new SimpleDateFormat("dd/MM/yyyy - HH:mm:ss");			System.out.println("Iniciando Pedido "+contador++);			System.out.println("Dados do início do pedido: "+formatar.format(calendario.getTime()));			Thread.sleep(10000);			System.out.println("Dados do término do pedido: "+formatar.format(calendario.getTime()));			System.out.println("---------------------------------------\n");			}		} 			catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}}

Quem puder me ajudar eu agradeço.

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Simples... Pelo que eu saiba, você deve iniciar novamente a variável calendario, porque ela fica com a data anterior.

 

Tente isso ;)

package prog.conc;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;public class teste implements Runnable{	private int contador;		public teste(){	contador = 1;	}				public void run(){		try {			while(true){			GregorianCalendar calendario = new GregorianCalendar();			SimpleDateFormat formatar = new SimpleDateFormat("dd/MM/yyyy - HH:mm:ss");			System.out.println("Iniciando Pedido "+contador++);			System.out.println("Dados do início do pedido: "+formatar.format(calendario.getTime()));			Thread.sleep(10000);                        calendario = new GregorianCalendar();			System.out.println("Dados do término do pedido: "+formatar.format(calendario.getTime()));			System.out.println("---------------------------------------\n");			}		} 			catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}}
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...