Programacion Multihilos?

Osvaldo Vald?
11 de Marzo del 2005
Soy estudiante de Ingenieria de Sistemas en La Habana(CUJAE). Quiesiera saber cualquier cosa sobre programacion multihilos en c/c++.

carmamezo
11 de Marzo del 2005
Bueno, te doy las funciones para hacerlo bajo windows mediante la API y también mediatne MSVC/C++....
Si necesitas ejemplos o más información puedes encontrar más datos sobre la API de windows en www.msdn.com buscando las funciones que te doy:

funciones de c:

unsigned long _beginthredex(void *, unsigned int, unsigned int (__stdcall *rutina)(void*),void *,unsigned int,unsigned int*)

void _endthreadex(unsigned int)

ejemplo:

unsigned int __stdcall hilo_paralelo(void *parametro)
{
printf ("Este es el hilon");
//recibe un apuntador a void por donde se le puede pasar la dirección de una vble.
printf("%dn",(int)parametro);
_endthreadex(0);//fin del hilo
return(0);//nunca se ejecuta pero así se evita el warning
}

void main()
{
una_estructura vble;
HANDLE hhilo;
unsigned int idhilo;

hhilo=(HANDLE)_beginthreadex(NULL,0,hilo_paralelo,(void *)5,0,&idhilo);
if(hhilo==0)
printf("ERROR");
else
CloseHandle(hHilo);
}


La API de windows da otras posibilidades como:
CreateThread()****
GetCurrentThreadId()
GetCurrentThread()
GetThreadPriority()
SetThreadPriority()****
GetThreadPriorityBoost()
SetThreadPriorityBoost()
SuspendThread()**
ResumeThread()**
GetThreadTimes()
ExitThread()
GetExitCodeThread()
TerminateThread()****

Las funciones marcadas con asteriscos son las mas usadas. La información de estas funciones está en el link que puse más arriba. Espero que te sirva de ayuda, un saludo.

chuidiang
11 de Marzo del 2005
Hola:

Lo de los hilos depende mucho del compilador/sistema operativo que tengas.

En http://www.geocities.com/chuidiang/procesos/procesoshilos.html#hilos tienes un ejemplo de hilos en C para linux.

Se bueno.