Den 23:10 6. mars 2012 skrev Marco Tabini <mtab...@me.com> følgende:
> On 2012-03-06, at 2:51 PM, Jan E. Schotsman wrote:
>
>> Hello,
>>
>> I have an array of progress values (number objects) for subprojects, from 
>> which I calculate the overall progress .
>> The array is an atomic property of the project class.
>>
>> Is it safe to access this array from multiple threads, using methods like 
>> objectAtIndex and replaceObjectAtIndex?
>>
>
> NSMutableArray is not (as far as I know) thread-safe while being mutated[1]. 
> That said, it doesn't mean that you can't use the array in a multi-threaded 
> environment: Just make sure that writes are all synchronized, and that 
> enumerations only happen on immutable copies.
>
> HTH,

Perhaps OP thought that just declaring the array as an atomic property
would make it thread-safe. I believe this would happen if
getters/setters were synthesized, and the array contents was only
changed by creating a whole new array, and always replacing it using
the setter. You would typically make the array immutable for such an
approach. In general, this can be a decent way of doing things in a
multithreaded app, because time spent in synchronized code would be
minimized. But I don't know if there are Cocoa-specific reasons to
avoid it, and of course it depends on how feasible it is for the
application.

Per

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to