线程-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 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代码有许多。

解决方案二:

用信号量,发送线程等待信号量,检测线程用释放信号量。

解决方案三:

使用线程同步,进行同步锁处理

解决方案四:

如果实时性要求不高的话,第二个线程,就sleep N秒,去检测那个全局标志。
如果实时性有一定要求的话,就用条件变量,可以实时控制

解决方案五:

可以让一个线程休眠,状态判断使用中断机制

时间: 2024-08-04 13:50:14

线程-Linux C编程求大神帮忙,感激不尽的相关文章

图片-悬赏40分 全英文的介绍的简单的两个c语言编程 求大神帮忙解答

问题描述 悬赏40分 全英文的介绍的简单的两个c语言编程 求大神帮忙解答 解决方案 #include int main() { int count; printf("输入"*"的个数:"); scanf("%d",&count); for(int i=0;i<=count;i++) { for(int j=0;j<i;j++) { printf("*"); } printf("n");

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

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

网络编程 ping程序有点问题,求大神帮忙看看

问题描述 网络编程 ping程序有点问题,求大神帮忙看看 // ping.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include #pragma comment(lib,"ws2_32") //定义ICMP首部 typedef struct icmp_hdr{ unsigned char icmp_type; //ICMP消息类型,回显请求:8,回显应答请求:0 unsigned char icmp_code; //代码,

编程语言-java编程,读取jar文件的属性,编到一半就进行不下去了,求大神帮忙

问题描述 java编程,读取jar文件的属性,编到一半就进行不下去了,求大神帮忙 package cksj; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class JAR extends JFrame{ JFileChooser j=new JFileChooser();//文件选择器 JPanel p1=new JPanel(); JPanel p2=ne

编程-跪求大神帮忙看下代码,错了不晓得怎么改哦

问题描述 跪求大神帮忙看下代码,错了不晓得怎么改哦 switch (uMsg) { case WM_CHAR: char szChar[20]; sprintf(_T(szChar),_T( "char code is %d"), wParam); 错误 1 error C2065: "LszChar": 未声明的标识符 IntelliSense: "const wchar_t *" 类型的实参与 "const char *"

线程-求大神帮忙解答一下这个问题

问题描述 求大神帮忙解答一下这个问题 在第一个Activity A里启动的线程,然后接到消息了跳转到第二个Activity B,那么第一个Activity里启动的 线程还能继续接受消息吗?如果能的话.那么能向B传递消息更新UI吗? 解决方案 求大神帮解答javaEE这个问题,谢谢了关于windows 2008 server R2 文件共享问题,求大神帮忙解决一下! 解决方案二: 我们用的线程池管理的是可以的,更新Ui是要重新将数据返回给前台页面吗??应该也是可以的 解决方案三: 我也有过这样问题

我是菜鸟,在c++编程中遇到问题,求大神帮忙

问题描述 我是菜鸟,在c++编程中遇到问题,求大神帮忙 对于这个题目: 定义一个基类Person,数据成员包含字符指针类型变量Name用于保存姓名, 函数成员包括默认构造函数.带形参构造函数用于初始化数据成员.输出 姓名的成员函数PrintName().从Person类派生出Student类,增加长整型 数据成员Number用于保存学号,派生类的函数成员包括带形参构造函数用 于初始化数据成员,输出学生信息的成员函数PrintInfo(). 要求:在函数PrintInfo()中需要调用基类的成员函

网络编程-IOCP,求大神帮忙涨姿势

问题描述 IOCP,求大神帮忙涨姿势 之前服务端TCP用CAsyncSocket来实现的,完全跟不上速度,导致主界面卡死现象,现在想用IOCP来重写,但是之前没接触过,网上找了一些资料,整的迷迷糊糊,有大神有简单的例子吗?都是TCP短连接,有必要搞Socket池吗? 解决方案 http://download.csdn.net/download/shaoxie1986/2044142 解决方案二: codeproject上搜索一下

编程-有一个小程序急用,但是我不会编译,求大神帮忙编译啊~~~太感谢!!

问题描述 有一个小程序急用,但是我不会编译,求大神帮忙编译啊~~~太感谢!! 如题,是一个小程序,用的是自己的makefile,下载下来了但是不会编译啊~~~~要exe格式的,那位大神可以帮忙编译出来真是太感激不尽!或者教一下我~~~太感谢了!编译好请发zhaojialiangsuper@126.com~源码地址 源码:https://releases.stm32flash.googlecode.com/git/stm32flash-0.4.tar.gz 解决方案 http://download