mutex 相关问题

互斥(“互斥”)是一种在多个线程同时访问(特别是更改)相同数据或资源时确保完整性的机制。

基于锁的并发向量

考虑基于 std::vector 的基于锁的并发向量,并为 std::vector 公共成员函数的每次调用锁定互斥锁,如何通过并发安全地迭代线程

回答 1 投票 0

C++中unique_lock和shared_lock有什么区别

尝试了解何时可以使用shared_lock而不是unique_lock,反之亦然。 C++ 文档非常神秘!我知道一般准则是如果我们愿意的话,在两者上使用 lock_guard

回答 1 投票 0

何时使用C++11互斥锁、锁、unique_lock和shared_lock?

除了shared_lock的析构函数解锁关联的互斥体之外,shared_lock和shared_mutex.lock_shared()之间还有什么区别? Shared_mutex 是我可以使用的唯一互斥类吗...

回答 1 投票 0

pthread_mutex_lock() 是系统调用吗?

我正在尝试测量 pthread_mutex_lock() 的系统时间和用户时间,这是我提出的函数: 无效measure_mutex_lock_time(双*用户时间,双*系统时间){

回答 1 投票 0

Go 中的性能:Mutex 与 RWMutex

Go 中有两种类型的互斥体:Mutex 和 RWMutex Mutex 提供 func Lock() 和 func Unlock()。 RWMutex 提供这些函数以及 func RLock() 和 func RUnlock()。 据我了解,我们...

回答 1 投票 0

GO Cond - wg.Done 之后的 fmt.Println 最终陷入死锁

无法理解golang中的这种死锁情况,我有下面的带有pub和sub模式的go代码 包主 进口 ( “FMMT” “同步” ) 函数主() { 条件:...

回答 1 投票 0

需要帮助防止多个 crons/调度程序在 golang 中运行

我正在开发一个 Go 微服务,我使用 robfig/cron 包来安排作业,最初想到使用 time.Ticker() 但包让我更容易。 我的问题是如何确保 cron...

回答 1 投票 0

Std::Lock 避免了死锁,但程序卡住了

全部, 参考std::lock中的问题仍然导致死锁 我仍然无法弄清楚下面的代码有什么问题。有人可以解释一下这个问题以及如何解决这个问题吗?为什么...

回答 2 投票 0

等待同一个条件变量时可以使用两个不同的互斥锁吗?

考虑以下场景: 线程1 互斥锁Lk1_ gcondVar_.wait(mutexLk1); 线程2 互斥Lk2_ gcondVar_.wait(mutexLk2); 线程3 条件变量_ gcondVar_.notify_all(); 我观察到的是,notify_all() d...

回答 2 投票 0

为什么我不能在一个线程中锁定互斥体并在另一个线程中解锁它?

我写了以下openmp代码: omp_set_lock(&lock); #pragma omp 任务 { 做工作(); omp_unset_lock(&lock); } 这似乎有效。然而,omp 标准规定,只有...

回答 1 投票 0

WebAssembly 等待和通知无法跨 wasi 线程工作

我试图通过在主线程中将互斥体设置为 1,然后启动一个线程来在 WebAssembly 中创建一个 thread_join 函数。线程在退出之前解锁其互斥体。主线程可以获得

回答 1 投票 0

C++ 编译器可以合并相邻的互斥锁吗?

考虑以下代码,其中相邻的互斥体部分包含共享内存访问: std::mutex 互斥体; 整数x; 无效函数(){ { std::lock_guard 锁{互斥体}; x++; } ...

回答 1 投票 0

如何将新实例化的互斥体推入 std::vector<std::mutex>?

我可以使用 auto mtx = std::mutex(); 初始化 std::mutex但似乎不可能将其推入 std::vector: 两个都 std::向量 vec; vec.push_back(std::

回答 1 投票 0

多线程中的任务顺序

我是线程和多线程的新手。(Win 套接字 API) 我试图通过适当的同步来实现两个线程中的任务序列。 不。线程 2 的数量:Thread_A 和 Thread_B 线程_A{ ...

回答 1 投票 0

std::recursive_mutex 会导致死锁吗?

我知道如果我在一个线程中两次锁定 std::mutex ,就会导致死锁。 因此,我将 std::mutex 全局替换为 std::recursive_mutex。 仅使用 std::recursive_mutex 是否意味着我永远不会......

回答 1 投票 0

在调用condition_variable::notify()之前我需要锁定互斥体吗?

我正在阅读条件变量的一些示例代码: 在 cppreference 处,notify_one() 的调用如下: https://en.cppreference.com/w/cpp/thread/condition_variable { std::lock_guard lk(m); ...

回答 1 投票 0

C++ 与 Qt5:在调用方法的实际重写实现之前锁定公共互斥体

我有一个像这样的抽象类: 类事物 { 民众: 事物(); 虚拟~Thing(); 静态 QMutex s_mutex; 虚拟无效负载()= 0; 虚拟无效翻译()= 0; 虚拟...

回答 1 投票 0

使用最新 Visual Studio 2022 构建的应用程序中的第一个 std::mutex::lock() 崩溃

最近我安装了最新的 Visual Studio 2022 v17.10 来构建我的程序,最初一切顺利。但是在安装了一些其他程序之后,我的程序立即开始失败......

回答 1 投票 0

C++ 中的互斥体中毒

当持有锁的线程突然终止时,c++ std::mutex 是否会中毒。如果是这样,我如何在另一个线程中恢复该互斥体?

回答 1 投票 0

互斥体越多效率越高吗?

假设我在C++中使用pthread,假设我有N(例如,N=10或100)个独立变量需要互斥锁保护。我可以创建 N 个互斥体,每个变量一个,或者我可以创建一个静音...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.