mutex相关内容

提升互斥量 C++/CLI 问题

我正在 Visual Studio 2008 C# 中开发 64 位,我想使用一个使用 boost 的库.所以我用 C++/CLI 写了一个包装器.我设法针对我遇到的错误 #include . 如果我在 C++/CLI 包装器中包含任何本身包含 的文件,或者如果我直接将它包含在包装器中,我会得到一个“System.AccessViolation ..
发布时间:2021-11-26 14:56:38 其他开发

提升互斥量 C++/CLI 问题

我正在 Visual Studio 2008 C# 中开发 64 位,我想使用一个使用 boost 的库.所以我用 C++/CLI 写了一个包装器.我设法针对我遇到的错误 #include . 如果我在 C++/CLI 包装器中包含任何本身包含 的文件,或者如果我直接将它包含在包装器中,我会得到一个“System.AccessViolationException" "试图读取或写入受保护的内存 ..
发布时间:2021-11-25 05:16:10 C#

ARM cortex:使用位带的互斥锁

鉴于在 ARM Cortex M3 上,我可以: 原子读取一个位 原子地设置一个位 原子清除单个位 如何将这些组合用于互斥样式的操作集: 尝试锁定取锁释放锁 try_lock 或 take_lock 似乎需要两个不是原子的操作. 我是否需要更多控制来完成此操作?禁用全局中断可以做到这一点,但似乎应该有更外科手术的方法. 解决方案 你的 rwl_TryLock() ..
发布时间:2021-11-17 22:13:46 其他开发

mutex_unlock 是否用作内存栅栏?

我将描述的情况发生在 iPad 4 (ARMv7s) 上,使用 posix 库进行互斥锁/解锁.不过,我在其他 ARMv7 设备上看到过类似的事情(见下文),所以我想任何解决方案都需要更全面地了解 ARMv7 的互斥锁和内存栅栏的行为. 场景伪代码: 主题 1 – 生成数据: void ProduceFunction() {互斥锁();int TempProducerIndex = ..
发布时间:2021-11-17 22:07:25 其他开发

如何保护 isr 和常规函数共享的全局变量?

假设我有 function 1 和一个 isr 例程,它们共享和更新相同的标志,它们之间没有任何锁定.系统是单线程的. while 将是一个 3 arm 汇编指令,这意味着它不是原子操作,可以在非 isr 和 isr 函数之间共享一个全局变量而没有任何锁定或保护吗? 功能 1: while (flag == false);标志 = 假; isr 例程: 做点什么标志=真 我不记 ..
发布时间:2021-11-17 21:46:30 其他开发

获取互斥量后调用await操作

如何在获取 mutex 后使用 await FileIO.WriteTextAsync()(在 Windows Phone 8.1 中)写入文件,以便没有两个线程访问同一个文件并且确保互斥.我正在做以下事情: mutex.WaitOne()尝试{等待 FileIO.WriteTextAsync(filename, text);Debug.WriteLine("写");}最后{mutex.Rele ..
发布时间:2021-09-26 20:43:55 其他开发

试图在 golang 中获取有期限的锁?

如何只尝试在 go 中获取类似互斥锁的锁,要么立即中止(如 TryLock 在其他实现中所做的那样)或通过观察某种形式的截止日期(基本上是 LockBefore)? 我现在可以想到 2 种情况,这将非常有帮助,并且我正在寻找某种解决方案.第一个是:接收延迟敏感请求的 CPU 密集型服务(例如 Web 服务).在这种情况下,您可能希望执行类似于下面的 RPCService 示例的操作.可以将它 ..
发布时间:2021-09-07 20:10:26 其他开发

C++20 中的原子智能指针和互斥锁

如果我想从多个线程写入/读取一个对象,即使我在 C++11 中使用 shared_pointer,我也必须使用额外的互斥锁来保证线程安全.如果我使用 C++20 中引入的 atomic_shared_pointer,这仍然适用吗? 问候 解决方案 在考虑 shared_ptr 的原子性时,可以考虑三层. 引用计数的原子性.也就是说,您在不同的线程上有两个 shared_ptr ..
发布时间:2021-09-07 18:40:01 其他开发

为什么使用互斥体而不是布尔变量进行线程同步?

我正在尝试了解 C 中的多线程编程. 我怀疑既然我们使用 MUTEXES 进行线程同步,为什么我们不能使用布尔变量来阻塞要执行的代码的关键区域. 布尔变量静音的特长是什么? PS:其实这个问题是在面试的时候问的.所以请分享您对此的了解. 解决方案 问题是两个线程可以同时将布尔值视为可用,然后都认为继续是安全的. 例如,假设您有以下代码: bool myLock = ..
发布时间:2021-09-03 20:19:01 其他开发

线程同步:Back &两个文本文件的四读

我正在编写一个创建两个线程的程序.每个线程负责读取一个文本文件,每行一个字符. 第一个格式如下: h0H0... 第二个格式如下: 0一世0一世0一世 有时可以有多个字母一个接一个,或者多个零一个接一个.但是,可以肯定的是,如果一个文件的一行有一个字母,那么第二个文件的对应行就会有一个0,反之亦然. 线程应该继续读取文件输入到全局字符数组中,直到它们达到零.此时,它们允许另一个 ..
发布时间:2021-06-04 20:50:36 其他开发

在通知条件变量后使用互斥锁

被通知的条件变量被通知后重新锁定互斥锁的原因是什么. 如果unique_lock没有作用域或者互斥锁没有明确解锁,下面这段代码会死锁 #include #include #include 使用命名空间标准;int main(){std::mutex mtx;std::condition_variable 简历;//模拟另一个工作线程发送通知auto as = std::asy ..
发布时间:2021-06-04 20:50:29 其他开发

具有异步支持的进程同步/信令的互斥替代方案?

除了 Mutex 之外,还有什么可以容错方式同步两个进程吗?请多多包涵... 有一个进程A,它有点片状,需要在后台启动进程B并继续.如果进程 A 成功完成它的工作,它需要向进程 B 发出信号以进行处理,然后继续(它不会终止并且线程被重用).如果进程 A 因异常、终止等原因死亡,进程 B 需要快速检测并自行处理.进程 A 不是一个“进程",而是一个由各种主机执行的库,因此进程 B 不能只是等待 ..
发布时间:2021-06-04 20:50:24 其他开发

可变借用互斥体内部的对象 - 如何重构?

我的许多功能中都有以下模式: use std::sync::{Arc, Mutex};结构状态{值:i32}fn foo(data: Arc) {let state = &mut data.lock().expect("无法锁定互斥锁");//改变 `state`} &mut *data.lock().expect("Could not lock mutex") 一遍遍重复,所以想重构为一个函 ..
发布时间:2021-06-04 20:50:21 其他开发

在 Python 中使用具有并发期货的互斥锁

我有一些代码使用并发期货连接到许多远程主机以运行一些命令. 例如: def set_host_to(host, value):连接 = 连接到(主机)信息 = do_something_with(连接)do_some_action(连接,值)以 concurrent.futures.ThreadPoolExecutor(max_workers=5) 作为执行者:对于主机,things_to ..
发布时间:2021-06-04 20:50:15 其他开发

有没有一种方法可以在 Python 3.3 上实现互斥锁?

我正在python脚本上设置IPC方法,想实现互斥同步方法.我该怎么做才能实现它? 我找到了这个库,但它从 2.6 开始就被弃用了 :'( =>https://docs.python.org/2/library/mutex.html 我有一些要求: 我不能使用外部库(因此,我不能使用 win32event 作为示例或 Pypi 库) 互斥锁是在另一个用 C++ 实现的进程上创建 ..
发布时间:2021-06-04 20:50:12 其他开发

在 C# 应用程序中查找命名互斥锁

如果我没有该应用程序的源代码,如何在正在运行的 C# 应用程序中找到命名的互斥锁? 解决方案 SysInternals 的 Process Explorer 实用程序可以列出进程正在使用的句柄;其中一些句柄可能被命名为互斥体,然后您可以对其进行检查. ..
发布时间:2021-06-04 20:50:10 其他开发

等待多个互斥体的条件变量

我有一个 std::condition_variable_any 等待自定义锁,该锁由两个互斥锁(一个 std::mutex 和一个共享锁定的 std::shared_mutex).它的 unlock() 操作只是按顺序解锁两个互斥锁. 例如(伪代码): mutex mutex1;shared_mutex mutex2;condition_variable_any cv;//获取锁双锁锁( ..
发布时间:2021-06-04 20:50:07 其他开发

对一个条件变量使用多个互斥锁

是否有一种机制可以让条件变量使用多个互斥锁?我在 Linux 中,在 C++ 中使用 pthreads. 在一个应用程序中,我需要通过 pthread_cond_wait() 原子地获取和释放两个互斥体(而不是一个),但该函数只接受一个. 我有一个名为 BlockingManager 的类,它有方法: blockMeFor( pthread_cond_t* my_cond, pthr ..
发布时间:2021-06-04 20:50:04 其他开发