elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  MiniLibrería de hilos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: MiniLibrería de hilos  (Leído 1,622 veces)
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
MiniLibrería de hilos
« en: 10 Julio 2013, 12:32 pm »

La estuve haciendo para un proyecto, es una especie "abstracción" con macros para poder usar hilos de forma multiplataforma. La cuelgo aquí por si alguien le interesa:

Citar
IDTHREAD Variable que identifica a un thread
IDMUTEX Variable que identifica a un mutex

CREARHILO(handle,funcion,parametro) Crea un hilo de ejecución, el primer parámetro corresponde a la variable ID, el segundo parámetro al nombre de la función y el tercero al parametro que se pase (NULL si no se pasa ninguno)
CREARMUTEX(nombre) Inicializa un mutex

HILO(nombre,parametro) Prototipo de la función del hilo, el primer parámetro correspondel nombre de la función y el segundo corresponde al nombre del parametro

LOCKMUTEX(nombre) Bloquea un mutex
UNLOCKMUTEX(nombre) Desbloquea un mutex

JOIN(handle) Espera hasta la finalización de un determinado hilo.

Librería (copiar y pegar):

Código
  1. #ifdef WINDOWS
  2. #include <windows.h>
  3. #else
  4. #include <pthread.h>
  5. #endif
  6.  
  7. #ifdef WINDOWS
  8.  
  9. #define IDTHREAD HANDLE
  10. #define IDMUTEX HANDLE
  11.  
  12. #define CREARHILO(handle,funcion,parametro)  handle = CreateThread(NULL,0,funcion,parametro,0,NULL);
  13. #define CREARMUTEX(nombre) nombre = CreateMutex(NULL,FALSE,NULL);
  14. #define HILO(nombre,parametro) DWORD WINAPI nombre ( LPVOID parametro)
  15. #define LOCKMUTEX(nombre) WaitForSingleObject(nombre,INFINITE);
  16. #define UNLOCKMUTEX(nombre) ReleaseMutex(nombre);
  17.  
  18. #define JOIN(nombre) WaitForSingleObject(nombre,INFINITE);
  19.  
  20. #else
  21. #define IDTHREAD pthread_t
  22. #define IDMUTEX pthread_mutex_t
  23.  
  24. #define CREARHILO(& handle,funcion,parametro) pthread_create(handle,NULL,funcion,parametro);
  25. #define CREARMUTEX(nombre)  pthread_mutex_init (nombre, NULL);
  26. #define HILO(nombre,parametro) void* Nombre(void* parametro)
  27. #define LOCKMUTEX(nombre) pthread_mutex_lock(nombre);
  28. #define UNLOCKMUTEX(nombre) pthread_mutex_unlock(nombre);
  29.  
  30. #define JOIN(nombre) pthread_join(nombre,NULL);
  31.  
  32. #endif

Nota Windows: Hay que poner el define WINDOWS (en Codeblocks, tienes que irte a project -> build options -> #defines -> Escribir WINDOWS).
Nota Linux: Hay que enlazar con la librería pthread (en Codeblocks tienes que irte a project -> build options -> linker settings -> pthread (columna de la izquierda)).


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
crazykenny


Desconectado Desconectado

Mensajes: 4.223



Ver Perfil WWW
Re: MiniLibrería de hilos
« Respuesta #1 en: 10 Julio 2013, 12:41 pm »

Interesante, y, bueno, muchas gracias por el aporte, amchacon.
Muchas gracias por vuestra atencion.
Saludos.


En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com/@crazykenny
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Más información en los hilos.
Sugerencias y dudas sobre el Foro
oklopo 1 2,016 Último mensaje 2 Mayo 2004, 00:20 am
por [[SpAwN]]
Hilos en vb6 sin CreateThread?
Programación Visual Basic
Zzombi 4 5,946 Último mensaje 2 Febrero 2010, 15:18 pm
por Zzombi
Hilos en C
Programación C/C++
mapers 2 6,109 Último mensaje 13 Junio 2011, 10:21 am
por mapers
Hilos C « 1 2 »
Programación C/C++
<<<-Basura->>> 10 5,527 Último mensaje 27 Febrero 2013, 17:53 pm
por <<<-Basura->>>
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines