mutex 相关问题

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

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

线程互斥锁定的随机性

在 C++ 中,我有一个多线程程序,其基本思想是将人员分配给汽车。每辆车都是一个线程(人)正在锁定的资源。我的程序允许我添加一些人...

回答 1 投票 0

使用互斥锁来停止启动/停止运行同一函数的多个线程

我的目标是: 我想让多个线程运行同一个函数,该函数是一个 while(1) 循环,所以它会继续下去。在某些时候,main 应该使用互斥体来强制所有线程阻塞 u...

回答 2 投票 0

MySql get_lock 用于并发安全更新插入

使用 MySQL 数据库在 Node.js 中编写 API,我正在实现一个相当标准的模式: 如果存在则更新 否则插入 这当然可以正常工作,直到多个同时请求......

回答 1 投票 0

在 C++11 中将持有线程的锁作为参数传递 std::unique_lock()

我试图将 std::unique_lock() 传递给线程,如下面的代码片段所示,当我尝试解锁()该位置时,应用程序因“解锁无主互斥体”异常而崩溃...

回答 1 投票 0

根据主循环设置的变量值立即中断辅助线程循环

我在 C++ 中遇到并发问题,我正在努力寻找最佳解决方案。我有两个线程:一个是主程序,另一个负责控制灯...

回答 1 投票 0

使用条件变量输出 Mandelbrot 的线程同步问题

我尝试将线程与条件变量同步以输出曼德尔博特,但我得到了错误的曼德尔博特。 函数output_mandel_line 和compute_mandel_line 已给出并且是正确的。我做了...

回答 1 投票 0

如何实现单实例单机应用?

我必须限制我的 .net 4 WPF 应用程序,以便它每台机器只能运行一次。请注意,我说的是每台机器,而不是每会话。 我使用简单的 mu...

回答 4 投票 0

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