2010-06-13 18 views

Trả lời

9

Nếu giả định của bạn được giữ, thì không có vấn đề gì.

+0

Không phải là vấn đề để tìm hiểu xem giả định của anh có được không? (có thể không, xem câu trả lời của guffa: http://stackoverflow.com/questions/3033425/are-simultaneous-reads-of-a-variable-thread-safe/3033439#3033439) – Kris

+0

Mặc dù hiện tại không có viết , một quyền trước đó có thể chưa được hiển thị cho tất cả các chuỗi tạo điều kiện chủng tộc. Xem câu trả lời của tôi để biết thêm chi tiết. – JaredPar

+1

@Kris, @JaredPar: Đúng, nhưng tôi trả lời câu hỏi của OP như đã nêu. :-) –

0

Do cơ sở dữ liệu thường có thể sử dụng shared read locks, trong đó bất kỳ số lượng khách hàng nào có thể đọc cùng một khối, tôi sẽ đề xuất rằng không có vấn đề cố hữu trực tiếp.

0

Có ba ký tự.

Chỉnh sửa: Rất tiếc. Có, đó là chủ đề an toàn. Không, không có vấn đề gì cả. Mọi người thường hỏi nếu có gì đó an toàn chỉ, không phải là chuỗi không an toàn.

3

Miễn là nó là một biến đơn giản, không có rủi ro.

Nếu đó là tài sản, việc đọc sách có thể có tác dụng phụ, vì vậy không được bảo đảm là chuỗi an toàn.

7

Không hoạt động này không phải là chủ đề an toàn.

Mặc dù biến hiện không được ghi vào, ghi trước đó cho biến có thể chưa hiển thị cho tất cả chuỗi. Điều này có nghĩa là hai luồng có thể đọc cùng một giá trị và nhận được các kết quả khác nhau tạo ra một điều kiện chủng tộc.

Điều này có thể được ngăn chặn mặc dù các rào cản bộ nhớ, sử dụng chính xác dễ bay hơi hoặc một vài cơ chế khác. Chúng tôi cần biết thêm về môi trường của bạn, đặc biệt là ngôn ngữ, để đưa ra một lời giải thích đầy đủ.

Một chút nghỉ ngơi của câu hỏi của bạn mặc dù mang lại một câu trả lời tốt hơn. Giả sử không có viết nhiều hơn và tất cả các ghi trước đó được hiển thị cho luồng hiện tại, thì có đọc giá trị từ nhiều luồng là an toàn.

+0

Câu trả lời hay mặc dù việc sử dụng dễ bay hơi thực sự phụ thuộc vào ngôn ngữ. Trong c/C++, volatile là một người bạn giả xác định vì mã được tạo ra rất chuyên biệt về trình biên dịch và không có tiêu chuẩn nào để nói biến biến động nào thực sự làm – zebrabox

+0

@zebrabox, rất đúng. Tôi đã cố gắng cẩn thận với câu trả lời vì nó cực kỳ ngôn ngữ + nền tảng cụ thể. – JaredPar

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