gpt4 book ai didi

ios - 我需要创建线程安全变量吗?

转载 作者:行者123 更新时间:2023-12-01 19:20:35 25 4
gpt4 key购买 nike

我需要创建线程安全变量吗?我将只在 mainThread 和 dispatch_async(dispatch_get_main_queue() 中使用 mydata。

-(void) mainThread
{
mydata = 55;
}

-(void) concurrentThread
{
dispatch_async(dispatch_get_main_queue(), ^
{
mydata = 77;
});
}

最佳答案

我认为没有必要对 mydata 做任何特别的事情在这种情况下,因为它只从主线程更新(假设 mainThread 意味着该方法只从主线程调用)。这也假设您没有尝试阅读 mydata除了主线程之外的任何地方。

进一步说明:

即使 concurrentThread 正在主线程以外的线程上运行,mydata = 77出现在被分派(dispatch)到主线程的 block 中意味着分配实际上将发生在主线程上,以某种串行顺序以及在主线程上发生的对该变量的任何其他读/写。因此,假设在访问 mydata 的主线程上没有其他任何代码,则此代码是安全的。

关于ios - 我需要创建线程安全变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10501582/

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