摘要:
保证代码线程安全和属性的使用也相关。atomic属性标志指定无论多少个线程访问给定属性,其值的设置或者获取都会得到一个“完整”的值,而不是部分值。本质上,它确保@synchronized指令为你的属性所创建的存取器函数在赋值或者取值之前,会在生成的存取器函数中利用一个@synchronized(self)代码块。当你指定nonatomic时,就不会调用@synchronized(个人理解就是不加锁).默认的是atomic(个人理解加锁),表明如果两个线程同时通过属性存取器函数访问某个特定的成员变量,那么该操作是线程安全的。但这并不能保证整个对象或者对这个对象的多个不同的存取器函数的不同调用时线 阅读全文
posted @ 2013-01-23 15:55
xcy617
阅读(604)
评论(0)
推荐(0)
摘要:
每个程序都至少有个一主线程,在没有显示的创建另一个线程的情况下,主线程从主函数开始执行然后负责执行剩下的应用代码。你可以把线程想成指令按顺序执行的应用的一行代码的执行。创建另外一个线程时,实际上在应用中就会有两个并发运行的独立线程。在单核的极其上运行,线程看起来是并发运行,但实际上它们会得到CPU分配的不同时间片段。在多核机器上就有可能是同时执行的。 当两个线程并行执行时,有可能两个线程在同一时间访问试图访问相同的内存块,若这样便会导致程序出现错误,称作不安全的线程状态。所以必须防止一个线程在同一时间访问另一个线程正在访问的内存块,常用的方法是互斥锁(lock)和使用@synchronize. 阅读全文
posted @ 2013-01-23 15:37
xcy617
阅读(269)
评论(0)
推荐(0)