首页

文章

c语言多线程编程问题

发布网友 发布时间:2022-04-19 21:30

我来回答

1个回答

热心网友 时间:2023-09-03 02:22

C语言中多线程的实现原理就是线程的原理,本人只了解Linux下面的C,linux下面的线程,不就是进程中的一个控制流么,相对来说代码很简单,但是原理却是很复杂,很难说清,还需要自己详细学习研究,下面是一个很简单的例子,哪边都能找到,自己运行下看看吧
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1()
{
printf ("thread1 : I'm thread 1\n");
for (i = 0; i < MAX; i++)
{
printf("thread1 : number = %d\n",number);
pthread_mutex_lock(&mut);
number++;
pthread_mutex_unlock(&mut);
sleep(2);
}
printf("thread1 :主函数在等我完成任务吗?\n");
pthread_exit(NULL);
}
void *thread2()
{
printf("thread2 : I'm thread 2\n");
for (i = 0; i < MAX; i++)
{
printf("thread2 : number = %d\n",number);
pthread_mutex_lock(&mut);
number++;
pthread_mutex_unlock(&mut);
sleep(3);
}
printf("thread2 :主函数在等我完成任务吗?\n");
pthread_exit(NULL);
}
void thread_create(void)
{
int temp;
memset(&thread, 0, sizeof(thread)); //comment1
/*创建线程*/
if((temp = pthread_create(&thread[0], NULL, thread1, NULL)) != 0) //comment2
printf("线程1创建失败!\n");
else
printf("线程1被创建\n");
if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0) //comment3
printf("线程2创建失败");
else
printf("线程2被创建\n");
}
void thread_wait(void)
{
/*等待线程结束*/
if(thread[0] !=0) { //comment4
pthread_join(thread[0],NULL);
printf("线程1已经结束\n");
}
if(thread[1] !=0) { //comment5
pthread_join(thread[1],NULL);
printf("线程2已经结束\n");
}
}
int main()
{
/*用默认属性初始化互斥锁*/
pthread_mutex_init(&mut,NULL);
printf("我是主函数哦,我正在创建线程,呵呵\n");
thread_create();
printf("我是主函数哦,我正在等待线程完成任务阿,呵呵\n");
thread_wait();
return 0;
}
中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 在Linux下的C语言编程 【紧急】使用Linux编写C语言程序 在linux下的C语言线程 在Linux环境下用C语言创建一个父线程,三个子线程,... c语言开发中,linux下的多线程和网络编程基础,这... Linux下C语言利用多线程向链表中写值 linux下C语言编程线程有什么好处呢 linux系统下,c语言pthread多线程编程传参问题 linux下c、c++下多线程编译? 如何用gcc在linux下编译多线程c语言程序 C++在linux下怎么多线程 用C语言在windows或者Linux上面,编写一个多线程程序 如何婉转的拒绝他人? vivo x21A是双卡双待吗? 如何拒绝他人要得体? 在人际交往中,如何婉转拒绝别人的请求 怎样才能礼貌而又不失优雅的拒绝别人? 如何礼貌委婉而不伤面子的拒绝别人? 如何才能客气礼貌的向别人请教问题?如何才能委婉... 如何委婉的拒绝别人? 怎么在linux中编写c语言程序 linux和c语言 c语言如何编写一个简单的多线程程序? C语言怎样实现多线程? C语言如何实现多线程同时运行 梦见别人卖黄面条 梦见门口有卖面条的来了我老公买了一点结果醒过来... 我梦见给别人卖面条吃 梦见和不熟悉的人一起擀面条卖 梦见已故爷爷在卖面条很忙,然后我也去帮忙,后来爷... 做梦梦见自己去卖面条可是让别人卖走了怎好不好 如何瘦大腿?女生 女孩子如何快速瘦大腿 女生如何快速瘦大腿? 每一个女生都一直在减肥的道路上没有停止过,如何... 女生怎样瘦大腿 怎样才能瘦大腿,我是女生 女生怎么样瘦大腿最有效? 怎样快速瘦大腿 女孩子怎样瘦大腿?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com