test.c:
#include <pthread.h>
#include <stdio.h>
unsigned int COUNT1, COUNT2;
void * thd1 (void * lpparam) // Thread 1
{
printf ( "Por primera vez el THD1 Enter \ n- el");
SLEEP (1); // sueño PRINCIPAL para que pueda tener la oportunidad de crear un hilo 2
while (1)
{
COUNT1 ++;
printf ( "thd1 preempt% d \ n", COUNT1);
sueño (1);
}
}
void * thd2 (void * lpparam) // rosca 2
{
La printf ( "Enter THD2 primera vez \ n-");
SLEEP (3.); // de hilo después de un 2 seg, luego de preferencia CPU
el tiempo (1). {
COUNT2 ++;
el printf ( "% D THD2 preempt \ n-", COUNT2); // Este es el resultado de la salida ideales
SLEEP (1.);
}
}
int create_fifo_thd (void (* rutina) (void * param), int dwPriority)
{
pthread_attr_t Attr;
pthread_attr_init (y Attr);
pthread_attr_setschedpolicy (y Attr, SCHED_FIFO);
pthread_attr_setdetachstate (y Attr, PTHREAD_CREATE_DETACHED);
struct sch_param sched_param;
sch_param.sched_priority = dwPriority;
pthread_attr_setschedparam (y Attr, y sch_param);
pthread_t pid = 0;
pthread_create (y pid, y Attr, la rutina, 0);
pthread_attr_destroy (y Attr);
pid de retorno;
}
int main ()
{
int ret = 0;
ret = create_fifo_thd (thd1,11); // baja prioridad
si (0 == ret) return 0 ;
ret = create_fifo_thd (thd2,12); // alta prioridad
si (0 == ret) devuelven 0 ;
printf ( "ok pthread_create \ n");
mientras que (1);
}
************************************************* ************************************************** ****************************************
prueba gcc -o test.c -lpthread