c++ - 锁定和操作需要很长时间

标签 c++ c multithreading locking

我认为这是一个普遍的问题。例如,我有一个由一个进程/线程修改的数组:

lock();
for(int i; i<array_size; i++) {
    // find an item and do some operations
}
unlock();

还有另一个进程/线程偶尔会打印整个数组,但可能需要“很长”的时间:

lock()
for(int i; i<array_size; i++) {
    print(array[i]);
}
unlock();

有没有更好的方法来打印整个数组?

最佳答案

如果是打印时间比较长的部分,可以拿锁,复制数组,释放锁,打印数组拷贝。

关于c++ - 锁定和操作需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136391/

相关文章:

makefile - 有人可以向我解释一下这个简单的 makefile 的作用吗

c - ANTLR C 语法,可选 init_declarator_list?

java - 将 ForkJoinPool 与 AsyncHttpClient 一起使用 - 这有意义吗?

c++ - 什么是 "Argument-Dependent Lookup"(又名 ADL,或 "Koenig Lookup")?

c++ - 从服务以交互方式启动 .Net winforms 应用程序

c++ - 如何从 C++ 使用 FTGL C API?

c# - 出现错误 - System.InvalidOperationException 未处理

.net - 为什么 Console.ReadKey() 会阻止在另一个线程中调用的 Console.WriteLine 的输出?

c++ - GetWindowText 无法处理商标符号

c++ - 为什么QWidgets是通过指针访问的?