100分求助,如何解决主线程和辅助线程数据存取问题? 辅助线程从串口读数,我开了一个大小为20的数组,当数组存满后,向主线程发送消息,主线程从数组中取数,但同时辅助线程还在取数吧(?),那么如何协调这两个线程的读取关系呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 存取的时候锁住...使用临界区CRITICAL_SECTION csRecvRead = {0}; InitializeCriticalSection(&csRecvRead);// 临界区初始化EnterCriticalSection(&csRecvRead);// 使用临界区变量pRightBuffer = pRightBuffer + len;LeaveCriticalSection(&csRecvRead); 用临界区。http://www.vckbase.com/document/viewdoc/?id=727 区域开大点..............cpu处理的速度远远快于串口读取的速度,不存在这个担心 CPU相对于串口德速度肯定快很多,瓶颈不是在取数,重要的是看你的数据处理有多复杂比如,你要对心电图数据做大量分析或显示(假设需要十几妙钟完成)那开多大空间也不够只能用链表增量存储,用两个指针,一个指响表尾,用于写线程写入数据,一个指向表头,用于读线程读入数据,写线程受到数据就分配一个空间,读线程受到一个数据就删除当前空间这样做效率可能低点,但对于你处理这样重要的数据还是很有用的,起码做到不让任何数据丢失你的处理线程可以任意时间去处理数据,安全 象happyparrot说的,我想说一下看法,不知道对不对如果做标志判断的话,一般情况是可以的,但标志毕竟不是CRITICAL的,假设当前出现这种情况写线程要写数据块A,它首先读A的标志,但此时读线程要读数据块A,它首先要写A的标志,这时候会出现不安全的情况,虽然概率很小我觉得处理这样重要的数据,以效率换安全也不为过 关于多线程调用dll 数据库二进制数据写成文件如何实现 创建的CComboBoxEx,设置CImageList后,CEdit里不显示图像? 透明窗体刷新问题 请教vc 编译问题! 急!关于电子显示屏的问题! 请教一下,在VC中如何将一个文件删除后面部分字节,谢谢 引入位图 100分 希望得到你的帮助 谁帮我写一个有优先级的队对类?? 哪里有根据不同计算机,产生不同注册码的控件或源码 怎样关闭子线程 问一个多线程操作树控件的问题
CRITICAL_SECTION csRecvRead = {0};
InitializeCriticalSection(&csRecvRead);// 临界区初始化
EnterCriticalSection(&csRecvRead);// 使用临界区变量
pRightBuffer = pRightBuffer + len;
LeaveCriticalSection(&csRecvRead);
比如,你要对心电图数据做大量分析或显示(假设需要十几妙钟完成)那开多大空间也不够
只能用链表增量存储,用两个指针,一个指响表尾,用于写线程写入数据,一个指向表头,用于读线程读入数据,写线程受到数据就分配一个空间,读线程受到一个数据就删除当前空间这样做效率可能低点,但对于你处理这样重要的数据还是很有用的,起码做到不让任何数据丢失
你的处理线程可以任意时间去处理数据,安全
如果做标志判断的话,一般情况是可以的,但标志毕竟不是CRITICAL的,假设当前出现这种情况
写线程要写数据块A,它首先读A的标志,但此时读线程要读数据块A,它首先要写A的标志,这时候会出现不安全的情况,虽然概率很小我觉得处理这样重要的数据,以效率换安全也不为过