elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [SOLUCIONADO]como usuar varios hilos en una clase??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]como usuar varios hilos en una clase??  (Leído 7,214 veces)
josco

Desconectado Desconectado

Mensajes: 199



Ver Perfil
[SOLUCIONADO]como usuar varios hilos en una clase??
« en: 26 Junio 2010, 19:58 pm »

hola que tal estoy haceindo un jueguillo, entonces tengo un juego que hice que usa un hilo principal para mover el juego este es el metodo run:

Código
  1. public void run() {
  2.      Graphics g = getGraphics();
  3.  
  4.    // ciclo principal del juego
  5.    while (!sleeping) {
  6.  
  7.      update();
  8.      dibujar(g);
  9.      try {
  10.        Thread.sleep(33);
  11.      }
  12.      catch (InterruptedException ie) {}
  13.    }

pero quiero ponerle al juego, algo asi como un cronometro, pero eso seria otro hilo que envez de que se duerma 33, se duerma 1000 (un segundo). pero que solo afecte al cronometro.

como le puedo hacer?? :huh: :huh: :huh:

DEBCI-Intenta poner el code con etiquetas geshi de java.


« Última modificación: 1 Julio 2010, 18:23 pm por Debci » En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: como usuar varios hilos en una clase??
« Respuesta #1 en: 26 Junio 2010, 20:09 pm »

Puedes hacerlo de varias formas

     
Código
  1.   Thread thread = null;
  2.        Runnable runnable = new Runnable() {
  3. @Override
  4. public synchronized void run() {
  5.  
  6. }
  7. };;
  8. thread = new Thread(runnable);
  9. thread.start();

      
Código
  1. new Thread(new Runnable() {
  2. @Override
  3. public void run() {
  4.  
  5. }
  6. });


En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: como usuar varios hilos en una clase??
« Respuesta #2 en: 26 Junio 2010, 20:45 pm »

Puedes hacerlo de varias formas

     
Código
  1.   Thread thread = null;
  2.        Runnable runnable = new Runnable() {
  3. @Override
  4. public synchronized void run() {
  5.  
  6. }
  7. };;
  8. thread = new Thread(runnable);
  9. thread.start();

      
Código
  1. new Thread(new Runnable() {
  2. @Override
  3. public void run() {
  4.  
  5. }
  6. });
Creo que es mas sencillo:

Código
  1. public class HiloCronometro extends Thread
  2. {
  3. public HiloCronometro(int dato)
  4. {
  5. //Prototipo creado por si quieres compartirle datos al thread facilmente
  6. //En el cuerpo del prototipo podemos incializar datos, convertirlos...
  7. }
  8. public void run()
  9. {
  10. //Cuerpo de ejecucion del thread
  11. }
  12. }
  13.  
  14.  
Y para arrancarlo:

Código
  1. HiloCronometro crono = new HiloCronometro();
  2. crono.start();
  3.  
Y tendremos un proceso de baja prioridad corriendo paralelamente a nuestro programa.

Saludos
En línea

josco

Desconectado Desconectado

Mensajes: 199



Ver Perfil
Re: como usuar varios hilos en una clase??
« Respuesta #3 en: 26 Junio 2010, 21:17 pm »

gracias ya pude  ;D ;D ;D aunque no se si lo implemente bien pero funciona lo que hice fue hacer la clase  HiloCronometro asi

Código:
public class HiloCronometro extends Thread
{
  private int time;
  public HiloCronometro(int timeh)
  {
      time = timeh;

   //Prototipo creado por si quieres compartirle datos al thread facilmente
   //En el cuerpo del prototipo podemos incializar datos, convertirlos...
  }
  public void run()
  {
    while(1>0)
        try {
        Thread.sleep(1000);
        time++;
      }
      catch (InterruptedException ie) {}
  }
  public int mandar()
  {
    return time;
  }
}

y en la clase del juego en el metodo run

Código:
HiloCronometro crono = new HiloCronometro(time);
public void run() {
      crono.start();
      Graphics g = getGraphics();//declaramos g para obtener graficos y mandarla
     
    // ciclo principal del juego
    while (!sleeping) {
     
      update();
      dibujar(g);
      try {
        Thread.sleep(frameDelay);     
        time = crono.mandar(); 
      }
      catch (InterruptedException ie) {}
    }
   }
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: como usuar varios hilos en una clase??
« Respuesta #4 en: 26 Junio 2010, 21:20 pm »

Veo que te fue mi metodo jeje, es mas sencillo que el que propone LEYER, pero tambien es interesante aprender a usar la interfaz Runnable.

Saludos

PD:Dale un quote de solucionado en el titulo.
En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: como usuar varios hilos en una clase?? solucionado
« Respuesta #5 en: 1 Julio 2010, 15:12 pm »

Disculpan que responda el tema solucionado, pero deseo opinar algo.

Citar
Existen buenos juegos que usan solo un thread.

Saludos!!
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: como usuar varios hilos en una clase?? solucionado
« Respuesta #6 en: 1 Julio 2010, 18:17 pm »

Disculpan que responda el tema solucionado, pero deseo opinar algo.

Citar
Existen buenos juegos que usan solo un thread.

Saludos!!
Por supuesto ;)

Cierro tema, creo que no hay mas que decir.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como correr un metodo en todos los hilos Activos
Java
deltacompu 0 2,871 Último mensaje 17 Diciembre 2010, 08:43 am
por deltacompu
[Solucionado]Duda funcionamiento Thread/Hilos
Java
NetJava 6 4,786 Último mensaje 25 Marzo 2011, 16:29 pm
por NetJava
problema declaraqcion de clase en dos archivoc [c++] [SOLUCIONADO]
Programación C/C++
<[(x)]> 2 1,956 Último mensaje 8 Abril 2012, 22:10 pm
por <[(x)]>
Windows Varios - Solucionado
Windows
Zorronde 5 4,249 Último mensaje 17 Septiembre 2014, 21:27 pm
por Zorronde
[SOLUCIONADO] He publicado catorce hilos en el lugar incorrecto y de forma absurda...
Sugerencias y dudas sobre el Foro
Eleкtro 2 2,962 Último mensaje 19 Marzo 2024, 01:44 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines