mutex 相关问题

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

我的阻塞队列实现有什么问题

//线程安全队列 模板 类阻塞队列{ 民众: 阻塞队列() { isempty.lock(); } 无效推(T obj){ std::lock_guard...

回答 1 投票 0

关闭互斥体句柄

我想关闭突变句柄以在两个窗口中运行应用程序。 句柄名称是: \Sessions\BaseNamedObjects\Growtopia 我可以在 Process Hacker 中关闭它,但我不知道如何...

回答 1 投票 0

操作系统线程调度因素是否会影响使用 std::sync::Mutex 与 tokio::sync::Mutex 的决定?

tokio::sync::mutex 文档提到了以下内容: 与普遍的看法相反,在异步代码中使用标准库中的普通互斥体是可以的,而且通常是首选。 这个

回答 1 投票 0

pthread_cond_wait()和pthread_cond_signal()的理解

一般来说,pthread_cond_wait() 和 pthread_cond_signal() 的调用如下: //线程1: pthread_mutex_lock(&mutex); pthread_cond_wait(&cond, &mutex); 做一点事()

回答 3 投票 0

为什么Mutex中包含一个Box?

Rust 的 std::sync::Mutex 是一个包含堆分配的内部互斥体的结构,以及这个半神秘的注释: pub 结构互斥体 { // 请注意,此互斥体位于 *bo...

回答 2 投票 0

在 c++17 中用 std 替换 boost::timed_wait()

我有一个条件变量 std::condition_variable my_cond; 我希望能够用 std 等效项替换 boost::timed_wait() 。 如果前面提到的条件变量是提升...

回答 1 投票 0

所有写入完成后保持互斥锁

我有一个关于 C++ 中线程安全和互斥锁的问题。我知道,在最简单的层面上,应该在任何可能同时读写的点保持互斥锁......

回答 1 投票 0

Java 中无需 volatile 关键字即可实现并发

Go语言编程9.2中的sync.Mutext一书有一个例子: 变量( sema = make(chan 结构{}, 1) 余额整数 ) func 存款(金额 int) { 塞玛<- struct{}{} balance = balance +

回答 1 投票 0

在C++中`for`循环的条件语句中使用右值

我正在执行一项编程任务,该任务接受一个 n 值并使用三个线程来打印零、偶数和奇数。 例如,如果n = 3,它将打印010203。我遇到了一个奇怪的行为...

回答 1 投票 0

在Go中,如何使用互斥锁与Go例程进行锁定和等待

我的代码是这样的: var 锁sync.Mutex 函数 DoSomething() { 锁.Lock() 去函数(){ 延迟锁定.Unlock() // 代码在这里 }() } 函数等待() { 锁.Lock() 锁.U...

回答 1 投票 0

为什么说 Mutex 中包含的任何内容都是线程安全的这一说法是错误的?

在我看来,如果一个数据结构需要一个锁来访问其内容,那么里面是什么类型的数据结构并不重要。即使里面的东西不是线...

回答 1 投票 0

mutex::lock() 或unlock() 是否有任何惯用的显式用法?

使用互斥锁来锁定代码关键区域的推荐方法是通过 RAII,即 mutex_type 互斥体; { // 临界区开始 std::lock_guard 锁(互斥锁); // 首先

回答 3 投票 0

莫里斯算法中的竞争条件

我几乎逐字地实现了信号量小书(第 85 页)中的莫里斯算法,用于无饥饿互斥体。大约一半的情况下,它会正确终止,而另一半则会在中间冻结

回答 1 投票 0

为什么这个 C++ 屏障实现不起作用?

为什么以下屏障实施不起作用: 无效 JoinQuery::barrier() { std::unique_lock lk(barrier_mutex); 屏障计数++; if (barrier_count == NUM_THREAD...

回答 2 投票 0

互斥体似乎没有锁定资源

我希望每当文件打开时,我的 go 例程都会从新文件中读取。为此,我使用互斥体来做到这一点。但输出似乎并没有达到预期。在 f1.txt 中我有 h...

回答 1 投票 0

std::mutex 是否强制缓存一致性?

我有一个非原子变量 my_var 和一个 std::mutex my_mut。我假设到目前为止,程序员已经遵循了以下规则: 每次程序员修改或写入 my_var 时,他

回答 2 投票 0

std::mutex 是否强制缓存内聚?

我有一个非原子变量 my_var 和一个 std::mutex my_mut。我假设到目前为止,程序员已经遵循了以下规则: 每次程序员修改或写入 my_var 时,他

回答 2 投票 0

如何在两个线程中使用 Windows.h 互斥体

我面临在两个不同线程中使用互斥体的问题。 我有两个线程函数:一个生产者,它从用户接收数据并将其写入全局变量;以及一个消费者,它接收...

回答 1 投票 0

使用互斥操作和原语实现信号量

前段时间面试,被要求实现 仅使用互斥操作和原语的信号量 (他允许 int 被视为原子)。我带来了下面的解决方案。 他没有...

回答 7 投票 0

为什么我们需要一个单独的<shared_mutex>头文件?

我们可以将shared_mutex放在同一个头文件下,而不是单独的头文件吗? 当我使用shared_mutex时,我想我只需要#include 。事实证明我...

回答 1 投票 0

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