- 博客(2)
- 收藏
- 关注
原创 htons大小端字节序转换使用场景
问题:存在一个事件ID号uint16_t(0xB003),需要存入uint8_t buf[2],buf中每个字节的值的顺序依旧为B003。 运行环境:以小端字节方式存储的机器。(小端字节序:数据低位存在低地址,数据高位存在高地址) 错误方式:数字0xB003的高位为B0,低位为03;而数组的地址是从低到高,即如果buf[0]的地址0x4000,那么buf[1]的地址应该为0x4001;若直接使用memcpy将0xB003拷贝至buf中,那么得到的buf[0] = 03, buf[1] = B0,该结果与需要
2021-09-24 17:19:21
312
原创 C++:记notify()无法唤醒wait()的问题
背景:在进程中使用condition_variable控制线程的阻塞和唤醒时,按照实现逻辑是线程二发布数据后存在10秒超时的wait()进行反馈数据处理等待,线程一接收反馈数据触发notify_all()使得线程二退出wait()的阻塞并返回成功进行处理反馈的数据。 问题:偶现notify_all()调用后,并未按照wait()退出阻塞的逻辑,而是等待超时了。 解决:notify_all()之前增加短暂的延时。(增加多一个条件变量进行控制也可以解决) 原因: notify_all()在wait()之前被调用
2021-07-28 19:49:17
1336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人