Có thể một câu hỏi ngu ngốc để hỏi nhưng tôi cần một số xác nhận về nó.Nghi ngờ về sự tương tranh với các đối tượng có thể được sử dụng nhiều lần như các trình định dạng
Thông thường, khi tôi xử lý các đối tượng có thể được sử dụng nhiều lần trong ứng dụng của tôi, tôi sử dụng cách tiếp cận như sau.
Tạo tiện ích mở rộng, ví dụ: NSDecimalNumber+Extension
hoặc tiện ích lớp nơi trình định dạng số được tạo như sau.
+ (NSNumberFormatter*)internal_sharedNumberFormatter
{
static NSNumberFormatter* _internal_numberFormatter = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_internal_numberFormatter = [[NSNumberFormatter alloc] init];
// other configurations here...
});
return _internal_numberFormatter;
}
+ (NSString*)stringRepresentationOfDecimalNumber:(NSDecimalNumber*)numberToFormat
{
NSString *stringRepresentation = [[self class] internal_sharedNumberFormatter] stringFromNumber:numberToFormat];
return stringRepresentation;
}
Cách tiếp cận này khá tốt vì ví dụ, các trình định dạng tốn kém để tạo. Nhưng nó cũng có thể được áp dụng cho các tình huống khác.
Bây giờ, câu hỏi của tôi là như sau.
Cách tiếp cận này cũng có hợp lệ trong các trường hợp có đường dẫn thực hiện khác nhau (các chuỗi khác nhau) có liên quan không?
Vì vậy, nếu tôi gọi đầu tiên là stringRepresentationOfDecimalNumber
trên luồng chính và sau đó trong một chủ đề khác, điều gì có thể xảy ra?
Tôi nghĩ là hợp lệ để thực hiện các cuộc gọi khác nhau đến stringRepresentationOfDecimalNumber
trong các chuỗi khác nhau kể từ khi trình chia sẻ được chia sẻ, trong trường hợp này, chỉ đọc, nhưng tôi muốn nhận được trả lời từ các chuyên gia.
Xin cảm ơn trước.
có thể trùng lặp của [Suy nghĩ trong việc truy cập chỉ đọc các đối tượng từ các chủ đề khác nhau] (http://stackoverflow.com/questions/19960287/thoughts-in-accessing-read-only-objects-from-different-threads) –