Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Nueva Característica: Multiprocesamiento
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Nueva Característica: Multiprocesamiento 
 
Hace ya unos días Benoît anunció esta nueva característica:

Citar:

En la revisión #5076, añadí un nuevo componente llamado gb.task que te permite ejecutar una clase en segundo plano.

Internamente, "simplemente" se bifurca el intérprete. Pero en realidad no es tan simple

¿Cómo funciona?

Una vez que marcas gb.task en el IDE obtienes una nueva clase denominada "Task".

Para ejecutar una clase en segundo plano:

  • Esa clase debe heredar de Task.
  • También debe contener un método público llamado "Main" que no toma argumentos ni retorna valor. Éste es el método que se ejecutará en segundo plano.


Al instanciar la clase el nuevo objeto se ejecutará automáticamente tan pronto como el bucle de eventos comience a ejecutarse.

El objeto tarea disparará un evento "Kill" cuando haya terminado.

Puedes esperar a que una tarea termine usando su método Wait().

Puedes detener una tarea invocando a su método Stop().

Puedes obtener el identificador de proceso de la tarea mediante su propiedad Handle.

Debido a que el método se ejecuta mediante un sub-proceso tiene acceso a cualquier otra parte del programa, excepto que el proceso principal que ejecuta la tarea no verá ningún cambio que ésta realice.

El proceso principal puede modificar algunas variables públicas de la clase Task como un modo de definir los argumentos de esa tarea. Sin embargo, todavía no está implementada la posibilidad de que la tarea hable con el proceso principal para devolverle el resultado de su trabajo.

Tal vez, el método Main() de la tarea tendrá un valor de retorno de tipo Variant que será serializado de forma transparente, enviado al proceso principal y deserializado. Una alternativa sería redireccionar la salida estándar de la tarea a una canalización (tubería) que será leída por el proceso principal.

O tal vez implemente ambas soluciones... todavía no lo sé.

Otra cuestión: no creo que gb.qt4 o gb.gtk pueda usarse después de la bifurcación (fork) del intérprete.

Díganme qué les parece.


(Si notan algún error en la traducción del mensaje por favor me avisan)

El mensaje es bastante claro, se trata de dotar a gambas de una mayor facilidad para manejar sub-procesos del sistema de manera que puedan ejecutarse tareas en paralelo y en segundo plano.

Así como Benoît lo ha pensado, no es una característica que dote a gambas de un mecanismo robusto de multitarea como en otros lenguajes que proveen esta posibilidad mediante hilos (hebras) o procesos del sistema, pero seguramente resultará útil en una gran variedad de situaciones en las que o se utilizaban timers o procesos del sistema mediante SHELL.

Así que a seguir de cerca esta nueva característica y a repasar la gestión de procesos de Linux.

Saludos.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
última edición por fabianfv el Miercoles, 29 Agosto 2012, 18:10; editado 1 vez 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Característica: Multiprocesamiento 
 
Interesante.... a ver si añade algún ejemplo
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Nueva versión Gambas 2.18 jguardon General 6 Martes, 29 Diciembre 2009, 01:34 Ver último mensaje
Ender
No hay nuevos mensajes Nueva En Gambas yamila35 General 6 Jueves, 08 Enero 2015, 17:57 Ver último mensaje
SoyDesarrollador
No hay nuevos mensajes Contactos (mi Nueva Aplicación) v3ctor Aplicaciones/Fragmentos de Código 0 Lunes, 12 Octobre 2015, 20:24 Ver último mensaje
v3ctor
No hay nuevos mensajes Nueva Versión De Gambas3.10 jsbsan General 14 Sabado, 26 Agosto 2017, 01:10 Ver último mensaje
tincho
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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
No puede descargar archivos
No puede publicar eventos en el calendario