c语言-linux C 线程终止问题,着急,求各位大神帮忙

问题描述

linux C 线程终止问题,着急,求各位大神帮忙

include
#include
#include
static int run = 1;
static int retvalue;
void *start_routine(void *arg){
int *runing = arg;
printf("The child thread has been inited,the arg is: %dn",*runing);
while(*runing){
printf("The child thread is runing !n");
usleep(1);
}
printf("Exit child threadn");
retvalue = 8;
pthread_exit((void *)&retvalue);
}

int main(void){
pthread_t pt;
int ret = -1;
int times = 3;
int i = 0;
int ret_join = NULL;
ret = pthread_create(&pt,NULL,(void
)start_routine,&run);
if(ret !=0){
printf("Create thread fail!n");
return 1;
}
usleep(1);
for(;i < times;i++){
printf("Print the main thread!n");
usleep(1);
}
run = 0;
pthread_join(pt,(void*)&ret_join);
printf("The return of thread is %dn",*ret_join);
return 0;
}
在子线程中,while循环是一个死循环,那个子线程如何退出终止的?各位大神,求解答!谢了各位!总是在线程这里玩儿不明白...

解决方案

哥们,子线程哪是一个死循环呢。。。 子线程循环条件就是run>0, 程序开始运行后,因为usleep()作用在主线程和线程之间切换执行,主线程执行到run=0后,子线程的循环条件也不存在就结束了呗

解决方案二:

啊啊啊,哥哥!谢谢了!我真没注意!我是看着书上例子,他没有注释,usleep函数的用处。。。所以我就用我电脑试了试 结果真行,让后就郁闷了,谢了哥!我没分,感谢感谢!

时间: 2024-09-13 21:47:56

c语言-linux C 线程终止问题,着急,求各位大神帮忙的相关文章

file-c语言在linux环境下进行文件复制的代码,使用时出错,求各位大神帮忙解答下

问题描述 c语言在linux环境下进行文件复制的代码,使用时出错,求各位大神帮忙解答下 #include#include#include#include#include#include#include#define BUFSIZE 4096#define COPYMODE 0644 void oops(char *char *);void *emalloc(size_t);void do_copy(char *char *);void copydir(char *char *);int isdi

c语言-C语言 图书管理系统 跪求各位大神帮忙

问题描述 C语言 图书管理系统 跪求各位大神帮忙 编写一段简易的图书管理系统,整个程序的设计实现大致分为四个模块,每一个模块对应一个函数.这些函数分别是,录入图书信息函数,借书函数,还书函数,查询函数.它们的功能分别是 1采用结构定义每本图书的编号,书的名称,书的作者,书的数量等信息 2录入五本书信息函数,主要是实现将图书信息录入并保存到书库中去 3借书函数:主要实现借阅图书的功能 4还书函数:主要实现将借阅的图书还回书库的功能 5查询函数:主要功能是查询图书现在的库存情况 以上功能采用菜单操作

c语言的一段代码不会,请大神帮忙

问题描述 c语言的一段代码不会,请大神帮忙 2C 无向带权图 解决方案 http://download.csdn.net/detail/zhangjinfu110/4575505 解决方案二: 图片太小了,看不清啊

语言-求各位大神帮忙做程序结构图(也就是模块间的关系)

问题描述 求各位大神帮忙做程序结构图(也就是模块间的关系) 求各位大神帮忙做程序结构图(也就是模块间的关系) #include #include #include #include #include FILE *fp=NULL;//文件指针 float LJE;//历史金额 int i=0;//变量 分级 int flag; //定义时间结构体,包括时分秒和10毫秒 struct tm //结构体 { int hours,minutes,seconds; //定义时,分,秒 int hscd;

线程-Linux C编程求大神帮忙,感激不尽

问题描述 Linux C编程求大神帮忙,感激不尽 void Detect_4G_model(void *param) { while(1) { / 检测到插入模块 */ g_4g_status = RUN; /* 检测到拔出模块 */ g_4g_status = STOP; } } void Send_to_4g_thread(void *param) { / 下面是需要挂起和唤醒的部分*/ while(1) { /* .... */ } return NULL; } int main(int

linux c-小白刚开始在linux学习c语言编程。有问题不会请各位大神指导下

问题描述 小白刚开始在linux学习c语言编程.有问题不会请各位大神指导下 6行和7行中的main有什么作用 解决方案 Programme file name! if programme file name is "test", gcc -o test .... 解决方案二: i wait to reply for your question 解决方案三: 这是Makefile的编写,main.o是main.c生成的中间文件,第七行的main表示最终生成的目标文件,他依赖于objs内的

xmlworkhelper pdf-XMLWorkHelper将html转换成pdf的时候,有分页,错行怎么处理?求各位大神解决下,着急

问题描述 XMLWorkHelper将html转换成pdf的时候,有分页,错行怎么处理?求各位大神解决下,着急 包如下:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream; import com.itex

运行错误-求c语言大神帮忙看看哪里出错了

问题描述 求c语言大神帮忙看看哪里出错了 #include #include #include struct course { int num; //选题编号 char name[20];//课题名称 char kind[10];//课程性质 int taltime,ttime,etime,mark,term;//课程时间,学分,开课信息 }; struct student { int snum; //学生学号 int cnum; //所选课题编号 char cname[20];//所选课题名称

线程并发 数据读写-求大神帮忙,c#多线程问题

问题描述 求大神帮忙,c#多线程问题 需求: 调用一个方法读数据,方法已经写好了,然后将读出的数据写入本地文件,可以是txt, 总共5个字段或者说属性参数. 因为要两个线程并发,边读边存,大体怎么搞,给点伪代码也行啊 多谢 解决方案 本地文件是没有等待的,同一个线程读写就可以了.两个线程做什么? 解决方案二: 用waithandle同步下 代码参考https://msdn.microsoft.com/zh-cn/library/system.threading.waithandle(VS.80)