我正在开发一个相对简单的iPhone应用程序,它有一个多轮定时器,有许多设置,如轮数和圆长.我们允许在定时器运行时更新某些设置,这意味着定时器可能正在从设置正在写入的同一内存中读取.没有关键的代码段,其中多个线程将同时执行,但来自设置的代码可能正在尝试写入计时器正在读取的内存.
就一个简单的例子而言,假设我们是一个全局变量foo,并且有一个NSTimer方法,如下所示:
– (无效)timerTick
{
NSString * x = foo;
}
然后在设置代码中,我们在计时器运行时执行此操作:
foo = @“test”;
在这个应用程序中使foo成为原子还是足够的,还是需要某种锁定方案?
谢谢.