Tag: 线程线程安全

我什么时候需要担心iOS应用程序中的线程安全?

在编写通常的视图控制器代码时,我可以假设这只会从一个事件循环线程中调用吗? 我需要什么样的类来使线程安全? 涉及多个线程的通常情况是什么?

我怎样才能使每个消息对象接收线程安全?

我正在开发一个Objective-C应用程序,我想要做什么,如下所示: +—————–+ +—————+ | Some Object | <———- | Synchronize | |(Not Thread Safe)| | Proxy | +—————–+ / +—————+ / / Intercepts [someobject getCount] / @synchronize (someObject) / [someObject getCount] / +———————-+ | Some Calling Object | +———————-+ 我所问的是,如何在objective-c中创build一个对象,拦截发送给另一个对象的消息,以便在消息发送到该对象之前执行代码。 有些事情我认为是行不通的: 类别(我需要这个只发生在某个类的某些实例上) 重写对象(我没有访问对象的来源) 方法调整(再一次,这种需要只发生在某个类的某些实例)

dispatch_sync对@synchronized具有哪些优点?

可以说我想让这个代码是线程安全的: – (void) addThing:(id)thing { // Can be called from different threads [_myArray addObject:thing]; } GCD接缝就像实现这一点的首选方式: – (void) addThing:(id)thing { dispatch_sync(_myQueue, ^{ // _myQueue is serial. [_myArray addObject:thing]; }); } 与传统方法相比,它有什么优势? – (void) addThing:(id)thing { @synchronized(_myArray) { [_myArray addObject:thing]; } }