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小时内与您取得联系。