linux下C++多进程与多线程实例分析
                                            这篇文章主要介绍了linux下C++多进程与多线程实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux下C++多进程与多线程实例分析文章都会有所收获,下面我们一起来看看吧。

站在用户的角度思考问题,与客户深入沟通,找到瑶海网站设计与瑶海网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、网络空间、企业邮箱。业务覆盖瑶海地区。
1、多进程编程
#include#include #include int main() { pid_t child_pid; /* 创建一个子进程 */ child_pid = fork(); if(child_pid == 0) { printf("child pid\n"); exit(0); } else { printf("father pid\n"); sleep(60); } return 0; } 
2、多线程编程
#include#include struct char_print_params { char character; int count; }; void *char_print(void *parameters) { struct char_print_params *p = (struct char_print_params *)parameters; int i; for(i = 0; i < p->count; i++) { fputc(p->character,stderr); } return null; } int main() { pthread_t thread1_id; pthread_t thread2_id; struct char_print_params thread1_args; struct char_print_params thread2_args; thread1_args.character = 'x'; thread1_args.count = 3000; pthread_create(&thread1_id, null, &char_print, &thread1_args); thread2_args.character = 'o'; thread2_args.count = 2000; pthread_create(&thread2_id, null, &char_print, &thread2_args); pthread_join(thread1_id, null); pthread_join(thread2_id, null); return 0; } 
 3、线程同步与互斥
1)、互斥
pthread_mutex_t mutex; pthread_mutex_init(&mutex, null); /*也可以用下面的方式初始化*/ pthread_mutex_t mutex = pthread_mutex_initializer; pthread_mutex_lock(&mutex); /* 互斥 */ thread_flag = value; pthread_mutex_unlock(&mutex);
2)、条件变量
int thread_flag = 0; 
pthread_mutex_t mutex; 
pthread_cond_t thread_flag_cv;\ 
 
void init_flag() 
{ 
  pthread_mutex_init(&mutex, null); 
  pthread_cond_init(&thread_flag_cv, null); 
  thread_flag = 0; 
} 
 
void *thread_function(void *thread_flag) 
{ 
  while(1) 
  { 
    pthread_mutex_lock(&mutex); 
    while(thread_flag != 0 ) 
    { 
      pthread_cond_wait(&thread_flag_cv, &mutex); 
    } 
    pthread_mutex_unlock(&mutex); 
 
    do_work(); 
  } 
 
  return null; 
} 
 
void set_thread_flag(int flag_value) 
{ 
  pthread_mutex_lock(&mutex); 
  thread_flag = flag_value; 
 
  pthread_cond_signal(&thread_flag_cv); 
  pthread_mutex_unlock(&mutex); 
}关于“linux下C++多进程与多线程实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“linux下C++多进程与多线程实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。
网站名称:linux下C++多进程与多线程实例分析
文章位置:http://www.cqwzjz.cn/article/josgpp.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 