我有两个线程访问同一组属性,但一个只读取属性,另一个只写入属性。
以下哪些属性需要同步以进行读操作,哪些必须同步以进行写操作?
@property (nonatomic) int myInt;
@property (nonatomic) NSInteger myInteger;
@property (nonatomic) CGImageRef cgImage;
@property (nonatomic, strong) UIImage *image;
@property (nonatomic, strong) NSMutableArray *array;
@property (nonatomic, strong) UIViewController *controller;
我的第一直觉是,所有的读写操作都需要一直同步。然而,由于一个线程总是在写,一个线程总是在读,我不确定自己。当然,总是同步是“安全的”,因为我不确定,但我想知道什么是真正正确的?
出于某种原因,我有这种感觉,也许 myInt 和 myInteger 不需要同步读取和写入,因为它们是按值传递的......?