Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿ Alguien Ha Probado La Clase Task ?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿ Alguien Ha Probado La Clase Task ? 
 
Buenas!.

Pues eso.

Aunque no los entiendo muy bien y no encuentro una documentación adecuada, estuve probando el uso de "hilos" en Java.
Hicimos un ejemplo simulando una carrera, cada objeto hilo heredaba de la clase Thread( eran los vehículos).

Alguno de los vehículos eran más rápido , por ejemplo un coche es..   más rápido que una bicicleta
por lo tanto en el método de ejecución del hilo se hacía dormir menos a los vehículos rápidos .

Al final los vehículos (hilos) se ejecutaban como le daba la gana, no en el orden que se crearon.
Tampoco era cuestión de que una bicicleta fuera al ritmo de una avión.  

Tenía un método "sincronizado" que era donde los vehículos incrementaban la distancia recorrida.
Una de las cosas curiosas es que al ser "sincronizado" ese método. Si querías hacer un ejemplo que
solo importase que llegará un vencendor, un participante (hilo), se podía dar el caso de que al llegar uno...
se ejecutasen después ( al menos ) una vez cada hilo restante.

Así que  no interesaba que el método fuera sincronizado si solo importase que llegará un solo vencedor.
Peeeero como hice otro ejemplo para que fueran tres posiciones de llegada, dejé el método sincronizado.

Como era de esperar, primero llegó el avión, luego el barco...(si!   ), como tercero el coche y a remolque la bicicleta.

En este ejemplo, no se podía dar un caso de "prioridad" de ejecución de los hilos.

Los ejemplos que he encontrado por ahora sobre hilos no son muy adecuados para entender el funcionamiento de los "hilos".
Pero, estos procesos, deben siempre ser pequeños por lo que parece. Ademas son algo fastidiosos...   a la hora de programar.
A veces los hilos son muy egoístas y solo piensan en ejecutarse ellos. Pero para eso están las prioridades.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 27 Marzo 2020, 11:03; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
Hay ejemplos aquí.

Nos divertimos mucho con esto.
Asegúrate de usar 'Chrome' o 'Chromium' si necesitas una traducción.
 



 
cogier - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
cogier escribió:  
Hay ejemplos aquí.

Nos divertimos mucho con esto.
Asegúrate de usar 'Chrome' o 'Chromium' si necesitas una traducción.


Wow, this is GOLD!!

Gracias, cogier

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
Gracias Cogier.

Una cuestión.

Existe mucho código que se repite o parece que se repite. Supongo que no se optimizó en su día.
Por ejemplo:

Do
      IndexLimit = LastSwap - 1
      LastSwap = 0
      For Index = FirstItem To IndexLimit
        Value = D_SubCategory_ByTime[Index].Time_Str
        ValueP1.Category_Str = D_SubCategory_ByTime[Index].Category_Str
        ValueP1.Date_Dat = D_SubCategory_ByTime[Index].Date_Dat
        ValueP1.Name_Str = D_SubCategory_ByTime[Index].Name_Str
        ValueP1.Number_Int = D_SubCategory_ByTime[Index].Number_Int
        ValueP1.Time_Str = D_SubCategory_ByTime[Index].Time_Str
        If Value > D_SubCategory_ByTime[Index + 1].Time_Str Xor Descending Then
          D_SubCategory_ByTime[Index].Category_Str = D_SubCategory_ByTime[Index + 1].Category_Str
          D_SubCategory_ByTime[Index].Date_Dat = D_SubCategory_ByTime[Index + 1].Date_Dat
          D_SubCategory_ByTime[Index].Name_Str = D_SubCategory_ByTime[Index + 1].Name_Str
          D_SubCategory_ByTime[Index].Number_Int = D_SubCategory_ByTime[Index + 1].Number_Int
          D_SubCategory_ByTime[Index].Time_Str = D_SubCategory_ByTime[Index + 1].Time_Str
          
          D_SubCategory_ByTime[Index + 1].Category_Str = ValueP1.Category_Str
          D_SubCategory_ByTime[Index + 1].Date_Dat = ValueP1.Date_Dat
          D_SubCategory_ByTime[Index + 1].Name_Str = ValueP1.Name_Str
          D_SubCategory_ByTime[Index + 1].Number_Int = ValueP1.Number_Int
          D_SubCategory_ByTime[Index + 1].Time_Str = ValueP1.Time_Str
          
          LastSwap = Index          
        Endif
        ValueP1 = New DataStructure
        Value = Null  
      Next
  Loop While LastSwap
 


Sorry, lately every time I see repeated code I feel like a kick in ...


Una cosa más. Cuando se hace:

CPU1 = New CPU(1, 1) As "CPUs"
 


Cuando se declara como "CPUs", luego esto parece que no se usa en otra parte del código.
Tengo que repasar conceptos.

Según la ayuda de Gambas:

Citar:

AS se emplea también para introducir el nombre del evento de un objeto en su instanciación.


Es como si fuera un grupo de CPU, ¿ no ? para que compartan un código en común.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 30 Marzo 2020, 12:00; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
Citar:
Existe mucho código que se repite o parece que se repite. Supongo que no se optimizó en su día.

Inocente, no es mi código.

Citar:
Sorry, lately every time I see repeated code I feel like a kick in ...

Keep calm! It's bad for the blood pressure.

Citar:
Cuando se declara como "CPUs", luego esto parece que no se usa en otra parte del código.
Tengo que repasar conceptos.

Se crea una nueva "Tarea" en el fondo. El resultado, cuando la 'Task' ha terminado, se vuelve a la rutina de 'Kill'.

Citar:
Es como si fuera un grupo de CPU, ¿ no ? para que compartan un código en común.

La "Task" se ejecuta en un proceso diferente. Así que puedes ejecutar varios procesos al mismo tiempo. gambas normalmente no puede hacer eso.

El adjunto podría ayudar.

SimpleTask-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: SimpleTask-0.0.1.tar.gz
Tamaño: 11.85 KB
Descargado: 44 veces
SimpleTask-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: SimpleTask-0.0.1.tar.gz
Tamaño: 11.85 KB
Descargado: 44 veces
SimpleTask-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: SimpleTask-0.0.1.tar.gz
Tamaño: 11.85 KB
Descargado: 44 veces

 



 
cogier - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
Charlie: Descargue tu ejemplo para estudiar si es posible adaptar esta técnica en un programa que lee los metadatos de imágenes o archivos de audio mediante el uso de exif-tool, es decir desde la terminal.
en definitiva se trata de una lista de archivos de la que, uno a uno, son procesados.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
Cogier:

cogier escribió:  
Existe mucho código que se repite o parece que se repite. Supongo que no se optimizó en su día.
Inocente, no es mi código.


 yo no dije que fuera tuyo. Solo comento sobre el código.  

cogier escribió:  
Citar:

Citar:
Sorry, lately every time I see repeated code I feel like a kick in ...

Keep calm! It's bad for the blood pressure.


 

Señor dame paciencia...pero dámela urgentemente.


Citar:

El adjunto podría ayudar.


Thanks Charlie.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
tincho escribió:  
Charlie: Descargue tu ejemplo para estudiar si es posible adaptar esta técnica en un programa que lee los metadatos de imágenes o archivos de audio mediante el uso de exif-tool, es decir desde la terminal.
en definitiva se trata de una lista de archivos de la que, uno a uno, son procesados.
Saludos.


Echa un vistazo a PhotoEXIF. Procesa los datos EXIF 1 foto a la vez mientras que una "Task" trabaja para obtener todos los datos EXIF de toda la carpeta. Una vez que la "Task" tiene todos los datos, el proceso único no se utiliza.  

Puedes ver que la "Task" está completa cuando la casilla de verificación está marcada.
photoexif_task
 



 
cogier - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
Para los que no sabemos que son los datos Exif.

Qué son los datos Exif de una foto y cómo leerlos en tu Android

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Task ? 
 
cogier escribió:  
tincho escribió:  
Charlie: Descargue tu ejemplo para estudiar si es posible adaptar esta técnica en un programa que lee los metadatos de imágenes o archivos de audio mediante el uso de exif-tool, es decir desde la terminal.
en definitiva se trata de una lista de archivos de la que, uno a uno, son procesados.
Saludos.


Echa un vistazo a PhotoEXIF. Procesa los datos EXIF 1 foto a la vez mientras que una "Task" trabaja para obtener todos los datos EXIF de toda la carpeta. Una vez que la "Task" tiene todos los datos, el proceso único no se utiliza.  

Puedes ver que la "Task" está completa cuando la casilla de verificación está marcada.
photoexif_task

Bien, he visto el código de PhotoExif y en la clase EXIF usas "Inherits Task". Así que ya tengo un ejemplo, ahora resta estudiarlo, entender como funciona y aplicarlo.
Gracias.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿Alguien Ha Probado La Variable De Entorn... shordi General 16 Miercoles, 28 Abril 2010, 17:16 Ver último mensaje
shordi
No hay nuevos mensajes ¿ Alguien Ha Probado La Clase Param ? Shell General 4 Viernes, 18 Abril 2014, 13:41 Ver último mensaje
Shell
No hay nuevos mensajes Código De Clase Button Alguien Sabe Donde... v3ctor General 7 Martes, 12 Abril 2016, 14:01 Ver último mensaje
Invitado
No hay nuevos mensajes Conoce Alguien O Ha Hecho Alguien De Usted... gambafeliz Off-topic 17 Lunes, 11 Noviembre 2019, 20:22 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron