gpt4 book ai didi

multithreading - 在共享对象的各个部分上进行独立操作时,是否需要互斥锁?

转载 作者:行者123 更新时间:2023-12-03 13:03:13 24 4
gpt4 key购买 nike

假设我们有一个100x100的矩阵。

我们有两个线程都通过引用(在C++中为std::ref())访问此矩阵。

第一个线程分配了1-50行,第二个分配了51-100行。他们俩都开始在自己的积木上工作并写信给他们。

两个线程之间没有通信,一个线程也不会从分配给另一线程的块中读取/写入内容。

在这种特殊情况下,使用互斥锁似乎是多余的,对吗?

最佳答案

正确的。如果您不共享任何数据,则无需锁定。

但是您拥有此矩阵是有原因的,您可能希望稍后共享。为此,您可能需要使用互斥锁和条件变量在线程之间建立一些通信。

在数学上,大多数时间线程用于将某些计算卸载到其他CPU,以便稍后可以合并它们的结果。合并是需要同步的部分。

关于multithreading - 在共享对象的各个部分上进行独立操作时,是否需要互斥锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48612103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com