开发者社区 问答 正文

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 argc, char * argv[])
{
pthread_create(&tid1, NULL, Detect_4G_model, NULL);
pthread_create(&tid2, NULL, Send_to_4g_thread, NULL);
}
程序有两个线程,线程td1用来检测外部模块的插入和拔出,当检测到拔出时,g_4g_status 设置为 STOP;当检测到插入时,g_4g_status 设置为RUN, 请问,怎么根据g_4g_status 的状态来控制线程Send_to_4g_thread的挂起和唤醒,最好写出点代码,O(∩_∩)O谢谢

展开
收起
杨冬芳 2016-07-15 18:45:05 2179 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    采用线程锁来进行控制,目前手头没有相关代码,你可以进行这方面的搜索。DEMO代码有许多。用线程同步,进行同步锁处理用信号量,发送线程等待信号量,检测线程用释放信号量

    2019-07-17 19:57:20
    赞同 展开评论
问答分类:
问答标签:
问答地址: