Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   pool of threads (https://www.clubdelphi.com/foros/showthread.php?t=62451)

JXJ 24-12-2008 02:34:39

pool of threads
 
¿como se puede implementar en delphi un pool of threads?

estoy pensando que seria bueno digamos para cuando
se descagan, varios archivos a la vez. como los download managers.

o al actualizar un mismo nuestros programas y requerimos de bajar varios
archivos a la vez o de diferentes servidores.

al enviar archivos en aplicaciones de chat.

al enviar video y audio en aplicaciones dechat.

o al tener varias ventanas abiertas en chats tipo
messenger. y estar chateando con varios contactos.

y por supuesto, al ejecutar querys y responder a los datos recibidos.

sale gracias por su tiempo. :cool:

Al González 24-12-2008 22:15:17

¡Hola!

El manejo de hilos siempre es interesante, JXJ. Pero ¿por qué no nos planteas con mayor concreción y detalle lo que te gustaría hacer para comenzar a componer ideas? :)

¿Te refieres a crear una especie de biblioteca o componente genérico para manejo de grupos de hilos de propósito general, o algo así?

Saludos.

Al González. :)

JXJ 25-12-2008 01:17:22

mas bien al reves...

hacer un programa, generico, que implemente un pools of threads.

el destino puede ser cualquiera. de los ya dichos. pero me inclino por construir
un download manager.

JXJ 25-12-2008 04:41:11

veamoslo asi..

tenemos que descargar mas de 10 archivos simultaneamente.

cada archivo en lugar de descargarlo con un thread que use la descarga secuencial y completa, lo descargamos usando un pool of threads por cada uno de los archivos a descargar donde cada hilo del pool of threads, descarge un trozo del archivo. (se supone. que de esta forma la descarga de un archivo es mas rapida.. por que se descargan trozos, chunks del archivo. y no todo el archivo, y los chuncks o trozos, se ensamblan)

algo asi como estos componentes
http://clevercomponents.com/products...e/suitemmd.asp

Delfino 25-12-2008 10:55:03

Las Indy tienen un componente precisamente para esto, no recuerdo su nombre pq cambio entre las versiones 9 y 10 (el nombre) pero sera facil entonctrarlo en la paleta y tb usarlo ya q solo hay q ligarlo a un componente servidor..

JXJ 26-12-2008 04:56:42

delfino..
eso no lo sabia..
aun asi. las indy son mi tormento,,,.. aun no logro hacer funcionar una aplicacion chat.
sin que me de un time out, o se cierra graciosamente...

lo voy a checar, lo de indy con la version 10
pero me gustaria mas una implementacion generica.
para adaptarlo a cualquier otra necesidad que se de.

Kipow 26-12-2008 11:31:24

Pues no lo veo tan dificil utilizando las generics :adorar: yo estoy trabajando algo similar a lo que sugieres vamos a ver si ya con tiempo puedo compartir algo de mi trabajo :)

Julián 26-12-2008 12:07:33

Si lo que quieres es hacer una aplicacion chat, yo tengo hechos una par de componentes llamados tchatserver y tchatclient, que hice para que me sirvieran de base para el ajedrezchat.

Tambien intente hacerlos con INDY y me pasaba los mismo que ati, o peor, timeouts, eventos que no iban, conexiones perdidas, o sea, un verdadero tormento. Asi que los hice con los componentes ICS y me funciona perfectamente, sin un fallo siquiera.

Y tambien tengo por ahí unos componentes para http y ftp que usan threads distintos para cada operación. Aunque usan funciones de la librería wininet, pueden servirte para eso del del "pool of threads".

Luego los busco y los subo a la web por si te interesan. Lo mismo tardo un poco, pues datan de la época del delphi 2.0 y no se ni donde los tengo. Por no hablar de que el código que escribía por aquella época deeb dejar mucho que desear.

Un saludo!

Delfino 26-12-2008 13:27:48

Cita:

aun asi. las indy son mi tormento,,,.. aun no logro hacer funcionar una aplicacion chat.
Eso pasa solo al principio, por ser bloqueantes, pero es un punto a favor no en contra, aqui se explica con mas detalles,
Despues de dominarlos medianamente son lo mejor, potentes y muy eficaces..

JXJ 04-01-2009 01:45:41

Cita:

Empezado por Julián (Mensaje 332224)
Si lo que quieres es hacer una aplicacion chat, yo tengo hechos una par de componentes llamados tchatserver y tchatclient, que hice para que me sirvieran de base para el ajedrezchat.

Tambien intente hacerlos con INDY y me pasaba los mismo que ati, o peor, timeouts, eventos que no iban, conexiones perdidas, o sea, un verdadero tormento. Asi que los hice con los componentes ICS y me funciona perfectamente, sin un fallo siquiera.

Y tambien tengo por ahí unos componentes para http y ftp que usan threads distintos para cada operación. Aunque usan funciones de la librería wininet, pueden servirte para eso del del "pool of threads".

Luego los busco y los subo a la web por si te interesan. Lo mismo tardo un poco, pues datan de la época del delphi 2.0 y no se ni donde los tengo. Por no hablar de que el código que escribía por aquella época deeb dejar mucho que desear.

Un saludo!

Cita:

Empezado por Kipow (Mensaje 332223)
Pues no lo veo tan dificil utilizando las generics :adorar: yo estoy trabajando algo similar a lo que sugieres vamos a ver si ya con tiempo puedo compartir algo de mi trabajo :)

Cita:

Empezado por JXJ (Mensaje 332221)
delfino..
una implementacion generica, para adaptarlo a cualquier otra necesidad que se de.

De favor, en cuanto puedan poner sus codigos fuente para aprender de ellos, muchas gracias


La franja horaria es GMT +2. Ahora son las 04:09:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi