腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(2270)
视频
沙龙
1
回答
当在
go
中
延迟
互斥
锁
解锁
时
,
你
能
得到
数据
竞争
吗
?
go
、
mutex
、
deferred
这个Get方法是不是有缺陷,容易引发理论上的
数据
竞赛?{ defer i.mutex.RUnlock()}Get()必须是这样的
吗
?
浏览 4
提问于2018-03-01
得票数 4
回答已采纳
1
回答
无
锁
队列轮询最快的无
竞争
方法是什么?
multithreading
、
queue
、
mutex
、
condition-variable
、
lockless
假设我们有一个单生产者线程的单用户线程无
锁
队列,并且生产者可以长时间运行而不产生任何
数据
。当队列
中
没有任何东西
时
,让使用者线程休眠将是有益的(为了节省电力和为其他进程/线程释放CPU )。天真的解决方案是让生产者在每次插入队列后锁定
互斥
锁
,向条件变量发送信号,然后
解锁
互斥
锁
,将实际工作(插入队列)完全保持在
锁
之外,并让使用者也这样做,锁定
互斥
锁
,等待条件变量,
解锁
浏览 1
提问于2010-11-21
得票数 6
1
回答
std::unique_lock<mutex>与conditional_variable cond的关系
c++
、
multithreading
、
c++11
1.)编译
时
,主线程(使用者)比生产者线程速度更快,因此它首先被激活,然后由cond.wait(locker);让它进入睡眠状态,以防止它吃东西,因为还没有做任何食物。但是在cond.wait(locker);之前有std::unique_lock<mutex> locker(_mu);,它是否自动
解锁
,以便其他线程可以在等待
时
访问它?另一个线程将开始处理,因为mutex将被
解锁
,然后它会到达cond.wait(locker);,但是已经有一个食物了,所以sleep就不需要了--我发现的解决方案是通过实现spu
浏览 2
提问于2015-06-13
得票数 1
回答已采纳
1
回答
信号量/
互斥
锁
/
解锁
频率
locking
、
mutex
、
semaphore
、
critical-section
、
unlock
我有一些代码,我需要使用信号量或
互斥
锁
。代码是这样的:callB();..我想知道
锁
它的有效方法。我想的选择是感谢你的帮助!
浏览 2
提问于2012-04-26
得票数 1
回答已采纳
4
回答
C++
中
的
互斥
对象必须绑定到某个对象或变量
吗
?
c++
、
multithreading
、
mutex
我对线程有些陌生,我正试图了解它在C++11
中
的工作原理。没有必要专门将
互斥
与列表关联起来
吗
? 最后,
互斥
锁
和
锁
有
浏览 5
提问于2013-02-02
得票数 10
1
回答
围棋语言中的潜在种族条件
go
我不知道为什么下面的代码有
竞争
条件,有人能给我一个提示
吗
?我认为没有潜在的种族条件。提前谢谢你。sync.Mutex} c.mu.Lock();
go
浏览 1
提问于2017-04-15
得票数 0
回答已采纳
2
回答
pthread_mutex_lock()和pthread_mutex_unlock()做什么?
c
、
caching
、
computer-science
我知道
锁
是这样的,所以代码会被阻塞,直到它再次被
解锁
。我仍然不知道在这段时间里会发生什么,在这段时间里,它被锁定和
解锁
。
浏览 10
提问于2022-05-03
得票数 2
2
回答
使线程锁定很长时间
c++
、
multithreading
每个区域都有一个与其相关的文件列表,这些文件将被读取以创建游戏
数据
并加载到RAM
中
。步骤1:读取所有文件并将其内容推入队列,步骤2:处理存储在此队列
中
的原始文件
数据
。如果它处于加载状态,那么它将尝试访问受
互斥
体保护的队列。如果它从队列
中
获得一个项目,它将处理它并将控制权还给游戏。队列
中
的下一个项将在下一个帧上处理,以此类推,直到完成区域的加载。我知道如何使用
互斥
来实现这个部分。但是,在读取线程被阻塞并在加载请求到达
时</
浏览 1
提问于2019-12-04
得票数 0
1
回答
优雅的
互斥
开关功能?
c++
、
templates
、
mutex
您能想到一种优雅的方法来创建带有可选
互斥
锁
的(成员)函数
吗
?出于显而易见的原因,让我们忽略宏。然后,您可以这样调用该函数:每
当在
内部使用该函数
时
(否则锁定
互斥
对象)。这里的问题是,即使抛出异常,也要确保
互斥
锁
是
解锁
的。也就是说,
你
不能简单地使用 mutex.
浏览 0
提问于2019-04-15
得票数 3
回答已采纳
3
回答
为什么std::condition_variable的通知和等待函数都需要一个锁定的
互斥
体?
c++
、
multithreading
、
c++11
、
locking
、
mutex
在我没完没了地追求理解std::contion_variable的过程
中
,我遇到了以下情况。std::cout << "thread " << id << '\n';在那之后,它说: std::unique_lock<std::mutex> lck(mtx);直到获得唯一的
锁
。也就是说,没有其他线程有
锁
。 因此,假设首先执行print_id函数。唯一的
锁
将被要求,该函数将在等待线上停止
浏览 5
提问于2015-05-13
得票数 6
回答已采纳
1
回答
当只有一个线程使用对象,而其他线程很少使用该对象
时
,如何最小化对象的
互斥
锁
?
c++
、
algorithm
、
qt
、
mutex
、
micro-optimization
为了避免
数据
竞争
和UB,SQLite应该使用SQLITE_THREADSAFE=1 (默认)选项进行编译。这意味着,在每次操作之前,内部mutex都将被锁定,这样DB在读取
时
就不会写入,反之亦然。(collapsed)如上文所示,在100多个操作
中
,只需要偶尔需要真正的
互斥
。然而,为了保护这一小局面,我们必须在所有行动
中
锁定它。问题:是否有一种"Thread_DB“在大多数情况下持有
互斥
对象的方式,这样就不需要每次锁定?只有当"Thread_
浏览 2
提问于2019-12-30
得票数 5
3
回答
为什么没有
锁
保护
互斥
锁
就不能工作?
c++
、
mutex
、
lock-guard
thread(task_2); task_1_thread.join(); return 0;shared_var在task_1
中
受到保护,但在task_2
中
没有受到预期的保护:当共享资源被锁定时,没有在task_1
中
输入else分支。实际情况:运行此代码将在task_1
中
进入task_1分支。一起工作
吗
? 我在:上运行代码
浏览 3
提问于2022-05-05
得票数 0
回答已采纳
1
回答
为什么当pthread_mutex在线程A中被锁定和
解锁
时
,另一个线程(例如B)正在运行?
c
、
linux
、
multithreading
、
pthreads
、
mutex
根据手册页
浏览 0
提问于2018-11-28
得票数 0
回答已采纳
1
回答
通知线程是否有可能在通知线程等待锁定之前锁定?
c++
、
multithreading
、
operator-precedence
我的问题是 在通知线程的 wait函数锁定之前,是否有可能将线程通知
锁
,因为notify操作不会阻塞当前线程?
浏览 0
提问于2018-11-13
得票数 1
回答已采纳
2
回答
C++ MultiThreading
互斥
锁
分段故障
c++
、
multithreading
、
mutex
、
readwritelock
**这是一个大学课程,我实际上并没有试图破解密码**下面是我的源代码,但本质上我希望发生的是父进程将密码排队到std::list<> attemptList
中
。从下面的代码
中
可以看到,我尝试使用std::mutex在前端被弹出
时
阻塞attemptList,但两个线程同时越过
锁
并从前端读取。然后其中一个分段故障导致程序崩溃。
浏览 19
提问于2019-04-19
得票数 3
回答已采纳
2
回答
在pthread_mutex_unlock()上获取errno EAGAIN
c++
、
visual-c++
、
pthreads
、
mutex
这是pthread_mutex_unlock()返回错误代码EAGAIN的正确行为
吗
?如果是这样,任何人都可以帮助我在这种情况下获得错误处理的洞察力。
浏览 1
提问于2015-05-06
得票数 0
2
回答
等待条件变量
时
,是否需要在取消点清理
时
解锁
互斥
锁
?
c
、
pthreads
、
locking
、
condition-variable
、
code-cleanup
假设有一些
数据
受条件变量保护,该变量在线程
中
执行,如下面的伪代码所示。此线程有一个设置清理过程,在向此线程发出取消请求的情况下会调用该过程。while lock is not acquired} 如果有人在等待条件变量时取消了线程(pthread_cancel()),关于pthread_cond_wait的文档说线程在获取
锁
时
被解除阻塞清理处理程序现在负责
解锁
该
锁
(
互斥
锁
),这是真的
吗
?如果--就像我的例子中一样--有另
浏览 15
提问于2020-03-19
得票数 0
1
回答
删除套接字后何时清除
c
、
linux
、
multithreading
、
sockets
当套接字发生意外,导致它被立即关闭和释放
时
(不管背景如何,这里讨论的是用户空间),因为我正在编写的应用程序是多线程的,所以只能在锁定的
互斥
对象
中
完成该操作,因此我需要一种方法来告诉所有其他(可能)等待线程、设置一些标志(在分配的内存
中
)表示套接字已关闭,以及一个计数器,以便最后一个线程醒来,并
得到
通知,它不能使用套接字
解锁
并破坏分配的内存。但是,这个解决方案有一个根本的问题--如果在
解锁
互斥
锁
和上一个持有者释放
互斥
<
浏览 1
提问于2021-06-08
得票数 1
回答已采纳
1
回答
Go
错误: gob:类型sync.Mutex没有导出字段
go
、
mutex
、
gob
如果我使
互斥
不可导出(通过不大写它),一切似乎都能正常工作。我很想了解为什么会出现这种情况,并确保不存在其他问题,因为它是一个未导出的sync.Mutex。我看到谷歌上有几个关于sync.RWMutex相关问题的点击量,但没有人
能
真正解释为什么会出现这种情况。
浏览 2
提问于2018-05-30
得票数 2
4
回答
线程安全标准:list C++
c++
、
multithreading
、
thread-safety
、
mutex
在列表
中
添加或删除项目
时
,执行mutex.lock()和mutex.unlock()是否足够?同样,我只是想让它们成为线程安全的。 谢谢
浏览 0
提问于2016-08-03
得票数 7
点击加载更多
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
腾讯会议
活动推荐
运营活动
广告
关闭
领券