多线程-一个作家和一个读者-我们需要使用储物柜吗
Multithreaded - One Writer And One Reader - Do We Need To Use Lockers?
在任何有一个编写器线程和一个读取器线程的多线程应用程序中,我们需要使用lockers吗?例如:
public void example::increase() {
counter++;
}
public int example::getValue() {
return counter;
}
- 在这个例子中,我们需要储物柜吗
- 如果我们不使用储物柜,应用程序可能会崩溃
感谢
它很有效,不取决于您的目的。如果你真的不在乎读取器是读取旧的、未增量的值还是读取新的、增量的值,那么这不会有多大问题。如果你这样做了,那么你需要上锁,也许还需要强制执行命令。
例如,你不能指望这样的代码:
counter= 0
CreateThread(Writer)
CreateThread(Writer)
CreateThread(Reader)
在这种情况下,您不能指望读取器会读取2,它可能会读取0、1或2。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 分段故障(堆芯转储)矢量
- 为什么我的代码给我一个分段/核心转储错误?
- 在 "CodePad" 中执行链表操作时转储的核心(这是一个在线C++编译器)
- v8 多线程储物柜
- 是否有一个windbg命令来检索转储的module_name
- GDB正在调试一个缺少特定调用堆栈的符号表的核心转储
- 如何确保在C ++中解锁储物柜?哪种解决方案更好
- sqlite3带有参数的多个插入物;仅插入一个记录
- SmartPoint 在<C++primer>4th中的一个例子,它抛出核心转储
- 对于MySQLDump,添加一个注释,输出每个表转储的行数
- 多线程-一个作家和一个读者-我们需要使用储物柜吗
- OpenCV:试图创建一个空白图像,但核心已被转储
- 以RAW形式恢复磁盘内容并转储为一个大二进制文件的应用程序
- 每当应用程序崩溃时,为其创建一个转储文件
- 我运行一个程序并遇到分段错误(核心转储),我使用 gdb 进行调试,程序在运行 ui->setupUI() 时崩溃了
- 我试图访问一个c++多态类的虚表,但失败的核心转储,为什么
- C 语言中的另一个核心转储问题
- 当用矢量数学将某物移动到一个点时,敌人到达那里然后消失
- 使用oracle occi和c++转储1300万行到一个文件