全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

linux下的C\C++多进程多线程编程实例详解

linux下的C\C++多进程多线程编程实例详解

1、多进程编程

#include <stdlib.h> 
#include <sys/types.h> 
#include <unistd.h> 
 
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 <stdio.h> 
#include <pthread.h> 
 
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  # 多线程详解  # 浅谈linux模拟多线程崩溃和多进程崩溃  # Linux中进程和线程的对比与区别  # Linux多线程环境下 关于进程线程终止函数总结  # linux线程切换和进程切换的方法  # linux下如何把进程/线程绑定到特定cpu核上运行  # 互斥  # 多线程  # 可以用  # 希望能  # 谢谢大家  # 创建一个  # char  # pid  # child  # printf  # sleep  # child_pid  # fork  # exit  # stdio  # nbsp  # struct  # pthread  # char_print_params  # father 


相关文章: 利用JavaScript实现拖拽改变元素大小  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何快速搭建个人网站并优化SEO?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  内网网站制作软件,内网的网站如何发布到外网?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何通过智能用户系统一键生成高效建站方案?  动图在线制作网站有哪些,滑动动图图集怎么做?  西安专业网站制作公司有哪些,陕西省建行官方网站?  大同网页,大同瑞慈医院官网?  魔方云NAT建站如何实现端口转发?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何通过宝塔面板实现本地网站访问?  如何用低价快速搭建高质量网站?  七夕网站制作视频,七夕大促活动怎么报名?  非常酷的网站设计制作软件,酷培ai教育官方网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何解决VPS建站LNMP环境配置常见问题?  Android使用GridView实现日历的简单功能  如何通过主机屋免费建站教程十分钟搭建网站?  建站之星Pro快速搭建教程:模板选择与功能配置指南  建站主机与虚拟主机有何区别?如何选择最优方案?  在线制作视频网站免费,都有哪些好的动漫网站?  制作网站怎么制作,*游戏网站怎么搭建?  如何快速搭建高效WAP手机网站吸引移动用户?  如何通过VPS建站实现广告与增值服务盈利?  小型网站建站如何选择虚拟主机?  高端云建站费用究竟需要多少预算?  javascript中的try catch异常捕获机制用法分析  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  制作网页的网站有哪些,电脑上怎么做网页?  网站制作价目表怎么做,珍爱网婚介费用多少?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何在阿里云高效完成企业建站全流程?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站三合一如何选?哪家性价比更高?  如何在Windows 2008云服务器安全搭建网站?  ,购物网站怎么盈利呢?  香港服务器部署网站为何提示未备案?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  高防服务器如何保障网站安全无虞?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  家庭建站与云服务器建站,如何选择更优?  Android自定义listview布局实现上拉加载下拉刷新功能  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。