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谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
采用线程锁来进行控制,目前手头没有相关代码,你可以进行这方面的搜索。DEMO代码有许多。用线程同步,进行同步锁处理用信号量,发送线程等待信号量,检测线程用释放信号量