Re: Multi-Thread
Posted: Tue Nov 04, 2014 4:44 pm
Es un concepto devivado del MULTIPROCESO,
el MULTIPROCESO puede ser :
un proceso MULTIHILO o
un proceso MULTIPROCESO PROPIAMENTE DICHO.
la diferencia es que en el multihilo es la division de un proceso en hilos de ejecucion? como se hace?
en C + C++ se hace con la fucnion fork() en este caso cuando un hilo de ejecucion comparte aun las variables del hilo principal
y cuando finaliza vuelve al hilo principal de ejecucion....
En cambio en el MULTIPROCESO PROPIAMENTE DICHO se realiza con la funcion thread() es es un proceso totalmente distinto... aunque se puede comunicar con el proceso principal si lo miras por linea de comando lo podes ver como un proceso distinto al del principal, en cambio en el fork() no se ve por linea de comando cuando se este ejecutando... cuando digo linea de comando es ps -ef | grep nameproceso
en el thread() generalmete se usa conexiones tcp/ip a traves de la fucnion select() ( bolsa de conectores o bolsa de handles )
el proceso principal acepta la conexion deun cliente y genera un proceso que trate y responda a esa conexion y el sigue escuchando y listo para aceptar otra conexion, los procesos nacientes desde thread() se deben matar si o si con exit() caso contrario quedara zombies que tarde o temprano generan señales de interrupcion por ejemplo Signal 11. saludos
el MULTIPROCESO puede ser :
un proceso MULTIHILO o
un proceso MULTIPROCESO PROPIAMENTE DICHO.
la diferencia es que en el multihilo es la division de un proceso en hilos de ejecucion? como se hace?
en C + C++ se hace con la fucnion fork() en este caso cuando un hilo de ejecucion comparte aun las variables del hilo principal
y cuando finaliza vuelve al hilo principal de ejecucion....
En cambio en el MULTIPROCESO PROPIAMENTE DICHO se realiza con la funcion thread() es es un proceso totalmente distinto... aunque se puede comunicar con el proceso principal si lo miras por linea de comando lo podes ver como un proceso distinto al del principal, en cambio en el fork() no se ve por linea de comando cuando se este ejecutando... cuando digo linea de comando es ps -ef | grep nameproceso
en el thread() generalmete se usa conexiones tcp/ip a traves de la fucnion select() ( bolsa de conectores o bolsa de handles )
el proceso principal acepta la conexion deun cliente y genera un proceso que trate y responda a esa conexion y el sigue escuchando y listo para aceptar otra conexion, los procesos nacientes desde thread() se deben matar si o si con exit() caso contrario quedara zombies que tarde o temprano generan señales de interrupcion por ejemplo Signal 11. saludos