2010-10-31 19 views
10

thể trùng lặp:
Objective-C properties: atomic vs nonatomicTại sao tôi nên sử dụng nonatomic trong một tài sản?

Theo mặc định tất cả các tài sản trong Objective-C là nguyên tử. Nếu tôi cần không phải là nguyên nhân, tôi phải khai báo nó. Nhưng tôi tự hỏi tại sao tôi nên sử dụng nonatomic? Ngay cả khi các ứng dụng của tôi không đa luồng, nguyên tử có vẻ giống như cách để làm điều đó. Những lợi thế của nonatomic là gì?

+4

@KennyTM: Đây không phải là bản sao của câu hỏi được liên kết của bạn. Đó là yêu cầu những gì nguyên tử/nonatomic có nghĩa là không giống như yêu cầu nếu bạn nên sử dụng nonatomic. – JeremyP

Trả lời

16

Câu trả lời ngắn gọn là hiệu suất. Nếu bạn khai báo các thuộc tính là atomic, các trình tiếp cận tổng hợp sẽ sử dụng các khóa để đảm bảo rằng các giá trị được lấy ra và thiết lập đầy đủ. Nếu bạn không cần điều này, ví dụ: ứng dụng của bạn là đơn luồng, bạn sẽ phải chịu một hình phạt về hiệu suất cho những khóa đó mà không nhận được lợi ích.

+6

Và do đó thiết lập các thuộc tính cho nonatomic mà không cần tính toán lược tả như tối ưu hóa sớm. – JeremyP

+1

Tôi cũng bị đe dọa nếu điều này thực sự có ý nghĩa đối với hiệu suất trong ứng dụng phổ biến để sử dụng thuộc tính này, mà không có nonatomic nó chỉ là dễ đọc hơn, một từ khóa không sử dụng miễn phí ... – Renetik

Các vấn đề liên quan