Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2021
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Programación con hilos

Buenas a todos. Estoy tratando de enterarme de como funcionan los hilos (no los he usado nunca) y he estado buscando por el foro pero todo, o casi, lo que encuentro es para gente que ya conoce algo del tema. ¿Podéis facilitarme algún sitio en el que comprender como funcionan los hilos, construirlos, etc.? GRacias
Responder Con Cita
  #2  
Antiguo 07-04-2021
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
¡Hola, Angel.Matilla!

Aquí tienes dos enlaces.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 07-04-2021
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Otros enlaces:
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 08-04-2021
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Algunos tips que son buenos a tener en cuenta:

Usa una libreria de alto nivel en vez de programar a pelo. Hacerlo manualmente es de lo mas fácil de hacer equivocadamente, y no hay nadie que pueda decir que lo hace correcto sin ayuda mecánica: ni MS, ni Google, ni Mozilla, ni Apple ni nadie. Notaras que TODOS ESTOS crean librerías especializadas e incluso lenguajes COMPLETOS (Rust, Go) por la complejidad del tema.

"no se comunique compartiendo memoria; compartir memoria comunicándose" es la mejor manera. Usa un "canal" de comunicación y pasa datos, pero NO intentes amarrar punteros, objetos o recursos. Es idéntico a como funciona la programación web:

NO te conectas directo (por punteros o similar) a una BD: Creas un JSON (datos) que envía por POST los datos de conexión y dentro de un hilo se hace todo.

Igualmente en una app el multi-hilo se maneja mejor de forma similar: Mandas comandos/datos y dentro del hilo que realmente "tiene" la conexión devuelves los datos, pero nunca das acceso directo a un recurso desde multiples hilos.

TODO esto te lo debe dar una libreria de alto nivel y por ende no deberias preocuparte de como se hace, solo que nunca "mandas" un objeto como una conexion o archivo o formulario, solo la PETICION de que el otro lado haga algo. Es como el modelo "cliente/servidor". Ok?
---

Ahora lo mas simple es solo tener 2 hilos a la vez: El que maneja la UI que es por defecto y no hay nada que tengas que hacer ahi y uno de background" para descargar tareas que no bloqueen la UI. En tal caso es mucho mas fácil, pero sigue la consigna: NO pases (ni con locks hechos a pelo, todo debe ser por medio de la libreria de alto nivel) recursos ni objetos "pesados", pasa un record/json/dato plano que le comunique al otro lado lo que debe hacer y devuelve datos de igual manera.

--

Si tienes un requerimiento que sea mas complejo que 2 hilos, entonces seria bueno que lo indiques, porque hay varios patrones de diseño que te permiten resolver esto de forma correcta y con mucho menos lios.

P.D: Estos patrones lo explican en esta libreria: https://zguide.zeromq.org/docs/chapter2/ que es multi-lenguaje/plataforma y es de los recuersos que mejor explican los diseños comunes de este tema.

P.D.2: La libreria que use hace tiempo que resuelve todo esto en Delphi es http://www.omnithreadlibrary.com. Parece que la forma directa en Delphi en ultimas versiones es https://blogs.embarcadero.com/learn-...-using-delphi/
__________________
El malabarista.

Última edición por mamcx fecha: 08-04-2021 a las 04:21:23.
Responder Con Cita
  #5  
Antiguo 08-04-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Angel.Matilla Ver Mensaje
Buenas a todos. Estoy tratando de enterarme de como funcionan los hilos (no los he usado nunca) y he estado buscando por el foro pero todo, o casi, lo que encuentro es para gente que ya conoce algo del tema. ¿Podéis facilitarme algún sitio en el que comprender como funcionan los hilos, construirlos, etc.? GRacias

Si explicas algo del proceso que quieres realizar con hilos tal vez podamos ayudarte.
Yo he programado cosas con hilos en Delphi y cuando entiendes un poco cómo funcionan no son complicados.
Simplemente tener claro que hay determinadas cosas que no debes hacer.


Lo dicho, según qué procesos pueden ser sencillos, incluso moverlos desde una programación "normal" a una "con hilos", puede ser relatívamente fácil, pero al final todo depende; Depende del proceso que debas oimplementar...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 08-04-2021
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias a todos por vuestras respuestas. Empezaré por tratar de ir leyendo los enlaces que me habéis pasado.
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Si explicas algo del proceso que quieres realizar con hilos tal vez podamos ayudarte.
Yo he programado cosas con hilos en Delphi y cuando entiendes un poco cómo funcionan no son complicados.
Simplemente tener claro que hay determinadas cosas que no debes hacer.
No es que tenga en mente hacer nada en concreto pero, imagino que como todos, siempre estoy tratando de ampliar lo que sé y me ha parecido un tema interesante para poder mejorar el rendimiento de por ejemplo el uso de las BB.DD.
Responder Con Cita
  #7  
Antiguo 08-04-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
Gracias a todos por vuestras respuestas. Empezaré por tratar de ir leyendo los enlaces que me habéis pasado.
No es que tenga en mente hacer nada en concreto pero, imagino que como todos, siempre estoy tratando de ampliar lo que sé y me ha parecido un tema interesante para poder mejorar el rendimiento de por ejemplo el uso de las BB.DD.
En general, con firebird, es la que usas, no vas a tener que usar hilos porque firebird usa un sistema interno que aprovecha la capacidad "multicore" de las cpu para lanzar las consultas a los "cores" más desocupados, asi que puedes ir haciendo consultas/inserts/etc. tranquilamente porque la propia firebird se encarga de "balancear" la carga entre los distintos cores.
Responder Con Cita
  #8  
Antiguo 07-05-2021
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En general, con firebird, es la que usas, no vas a tener que usar hilos porque firebird usa un sistema interno que aprovecha la capacidad "multicore" de las cpu para lanzar las consultas a los "cores" más desocupados, asi que puedes ir haciendo consultas/inserts/etc. tranquilamente porque la propia firebird se encarga de "balancear" la carga entre los distintos cores.
Perdona por el retraso. Gracias por las indicaciones.
Responder Con Cita
  #9  
Antiguo 07-05-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Menos mal que contestaste, llevo sin poder dormir desde entonces esperando la respuesta
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
hilos !! ?? lmpadron C++ Builder 2 14-03-2012 04:41:31
Hilos johurgi Varios 2 16-07-2007 10:57:08
¿Se pierden hilos? Casimiro Notevi La Taberna 17 26-06-2006 15:51:21
ver hilos Cosgaya Varios 1 07-06-2005 20:35:16
Hilos con COM urush30 Varios 0 21-09-2004 10:07:37


La franja horaria es GMT +2. Ahora son las 19:59:03.


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
Copyright 1996-2007 Club Delphi