02 #include <pthread.h>
03 #include <stdlib.h>
04 #include <sched.h> //sched_setscheduler()
05
06 void thread(void)
07 {
08 int i;
09
10 struct sched_param param;
11
12 sched_getparam(0, ¶m);
13 printf("priority = %d\n", param.sched_priority);
14 printf("policy = %d\n", sched_getscheduler(0));
15
16 param.sched_priority = 99; // 99 is 最高优先级
17
18 sched_setscheduler(0, SCHED_FIFO, ¶m);
19 for (i = 0; i < 3; i++)
20 printf("This is a pthread.\n");
21 }
22
23 int main(void)
24 {
25 pthread_t id;
26 int i, ret;
27 ret = pthread_create(&id, NULL, (void *)thread, NULL);
28 if (ret != 0)
29 {
30 printf("Create pthread error!\n");
31 exit(1);
32 }
33
34 return(0);
35 }
gcc test.c -lpthread
#include <stdio.h>
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <sched.h> //sched_setscheduler()
pthread_mutex_t mutex;
int g_max;
void thread(void)
{
int i;
//struct sched_param param;
//sched_getparam(0, ¶m);
//printf("priority = %d\n", param.sched_priority);
//printf("policy = %d\n", sched_getscheduler(0));
//param.sched_priority = 99; // 99 is 最高优先级
//sched_setscheduler(0, SCHED_FIFO, ¶m);
//for (i = 0; i < 3; i++)
// printf("This is a pthread.\n");
pthread_mutex_lock(&mutex); // 获取互斥锁
g_max = 100;
pthread_mutex_unlock(&mutex); // 释放互斥锁
while (1)
{
sleep (1);
printf ("%s %d\n", __FUNCTION__, __LINE__);
}
//pthread_exit(0);
}
int main(void)
{
pthread_t id;
int i, ret;
pthread_mutex_init(&mutex, NULL); // 创建互斥锁
ret = pthread_create(&id, NULL, (void *)thread, NULL); // 创建线程
if (ret != 0)
{
printf("Create pthread error!\n");
exit(1);
}
for (i = 0; i < 3; i++)
{
sleep(1);
printf ("%s %d i = %d\n", __FUNCTION__, __LINE__, i);
}
pthread_mutex_destroy(&mutex); // 销毁互斥锁
pthread_cancel (id); // 销毁线程
printf ("%s %d\n", __FUNCTION__, __LINE__);
return(0);
}