📄 pthread_hw.c
字号:
#include <stdio.h>#include <pthread.h>#include <sched.h>pthread_mutex_t mutex;struct timespec delay;voidptr_key (void){ pthread_key_t mykeyt; int par = 5; printf ("the value got from key is:%d\n", par);}voidthread_obj (int prior){ int j = 2, i, k = 2; pthread_key_t mykey; pthread_key_create (&mykey, NULL); pthread_setspecific (mykey, &j); j = prior + 4; printf ("The pthread process number is:%d\n", k); ptr_key (); usleep (20000); for (i = 0; i < 10; i++) { if (i % 2 == 1) { pthread_mutex_lock (&mutex); printf ("%d:%d\n", k, i); pthread_mutex_unlock (&mutex); usleep (50000); // pthread_delay_np(&delay); } } // printf("the pthread priority is:%d\n",prior);}intmain (void){ pthread_t id; pthread_attr_t attr; struct sched_param param; int i = 0, ret, k = 1; delay.tv_sec = 2; delay.tv_nsec = 0; pthread_attr_init (&attr); pthread_attr_getschedparam (&attr, ¶m); pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM); printf ("The main process number is:%d\n", k); ret = pthread_create (&id, &attr, (void *) thread_obj, (int) param.sched_priority); if (ret != 0) printf ("create pthread error\n"); for (i = 0; i < 10; i++) { if (i % 2 == 0) { pthread_mutex_lock (&mutex); printf ("%d:%d\n", k, i); pthread_mutex_unlock (&mutex); usleep (50000); //pthread_delay_np(&delay); } } pthread_join (id, NULL); printf ("this is end program\n"); return (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -