智能指针share_ptr是半线程安全的,share_ptr包含引用计数和对象读取两部分,其中引用计数控制采用的是原子操作,是安全无锁的;而对象的读取不是线程安全的,所以如果多个线程读取同一个share_ptr的话是需要加锁的,或者使用全局非成员原子操作函数访问, 如: std::atomic_load(), atomic_store()。C++20引入了原子智能指针std::atomic_shared_ptr 和std::atomic_weak_ptr保证了对象读取也是线程安全的。
2 3

相关推荐

开始学习结构体,结构体可以将不同类型的数据组合在一起,形成一个新的数据类型,方便对相关数据进行统一管理和操作。学习了结构体的定义、初始化和访问成员的方法。定义结构体时,需要指定结构体的成员变量及其类型。初始化结构体可以使用花括号括起来的初始值列表,也可以在定义后逐个对成员变量进行赋值。访问结构体成员可以使用点运算符(.)cstruct 结构体名 {    成员类型1 成员名1;    成员类型2 成员名2;    //...};例如,定义一个学生结构体:cstruct Student {    char name[20];    int age;    float score;};在 C++ 中,结构体定义除了上述方式外,还可以像类一样,在定义结构体时直接定义成员函数,而且结构体默认访问权限是 public,而不是像类一样默认为 private。例如:。尝试定义了一个表示学生信息的结构体,包括学生的姓名、年龄、成绩等成员变量,并写了一些函数来对学生信息进行输入、输出和统计等操作。通过这些练习,对结构体的使用有了初步的掌握,也体会到了结构体在实际编程中的便利性。今天对结构体的学习让我认识到了一种新的组织数据的方式,为后续的编程学习打下了基础。
点赞 评论 收藏
分享
2024-12-09 09:01
北京邮电大学 C++
1. 如何在嵌入式系统中实现实时操作系统(RTOS)的基本使用?2. 使用MQTT协议进行物联网设备的消息传递?3. 如何在嵌入式系统中实现音频信号的处理与分析?4. 使用ADC进行模拟信号的采集与数字化?5. 如何在嵌入式系统中实现LED灯的渐变效果?6. 使用SPI与OLED显示屏进行图形显示?7. 如何在嵌入式系统中实现温度控制系统?8. 使用USB接口与外部设备进行数据交互?9. 如何在嵌入式系统中实现数据的加密与解密?10. 使用Lora模块进行远程低功耗数据传输?11. 如何在嵌入式系统中实现语音识别功能?12. 使用PWM控制直流电机的速度?13. 如何在嵌入式系统中实现图像的压缩与存储?14. 使用HTTP协议进行RESTful API的调用?15. 如何在嵌入式系统中实现智能温控系统?16. 使用RFID模块进行物品识别与管理?17. 如何在嵌入式系统中实现环境监测系统?18. 使用CAN总线进行车辆状态监测?19. 如何在嵌入式系统中实现电流和电压的监测?20. 使用GPS模块进行位置跟踪与导航?21. 如何在嵌入式系统中实现数据的远程控制与管理?22. 使用光传感器实现自动调节亮度的灯光系统?23. 如何在嵌入式系统中实现多种传感器的数据融合?24. 使用Zigbee与传感器网络进行环境监测?25. 如何在嵌入式系统中实现电机的闭环控制?26. 使用RTC模块进行定时唤醒功能?27. 如何在嵌入式系统中实现用户输入的处理?28. 使用BLE模块进行低功耗无线通信?29. 如何在嵌入式系统中实现电池充电管理?30. 使用图像处理算法实现目标识别与跟踪? 我面试看的是大佬的面经,链接放下边了  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
牛客网
牛客企业服务