C++ 两个线程,共享几个整数变量
c++ two threads, sharing a few integer variables
我正在编写一个音频效果插件,我对C++相当陌生。
我有一些需要跨两个线程(一个音频处理线程,一个FFT/分析线程(共享的缓冲区的读/写头。
对于大多数这些整数(索引到缓冲区中(,我已经找到了一种方法,只需要一个线程来写入,另一个线程可以简单地读取。但是,一个读取头需要从两个线程中写入。
我关于C++的天真问题是:我应该为这些整数变量使用什么类型?
- 国际易失性?
- 标准::atomic_int ?
最后一个问题:对于只能在一个地方写入的整数,我可以将它们转换为这些读取线程中的const
吗?
谢谢!
- int volatile?
不。您需要跨线程同步。volatile
不提供您需要的。
- std::atomic_int ?
是的。对std::atomic
的操作是线程安全的。
最后一个问题:对于只能在一个地方写入的整数,我可以将它们转换为这些读取线程中的 const 吗?
如果在另一个线程中修改了它,则需要同步。强制转换为 const 无济于事。
相关文章:
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何返回或护理项目清单基于几个类别
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 如何从字符串C++读取多个整数
- 比较C++中两个整数的最有效和最干净的方法是什么?
- 我们如何在文本文件中找到C++中的几个单词?
- 有没有更好的方法对C++中的三个整数进行排序?
- 关于 std::bitset 构造函数的几个问题?
- 编写一个读取五个整数并执行一些任务的C++程序
- 几个 Nt 函数在 Windows 7 x32 上返回STATUS_WAIT_0
- std::stoi 只转换前几个字符
- 比较两个整数在C++中与未知 int 类型的相等性
- 如何忽略输入中的 N 个整数
- C++ 两个线程,共享几个整数变量
- 使用C - CIN获取几个整数数字,然后将它们放入数组中
- 如何查找用户使用 do/while、While 语句或 For 语句输入的几个整数的总和
- 将64位循环拆分为整数上的几个32位循环