⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pthread_hw.c

📁 简单的多线程程序
💻 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, &param);  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 + -