Tôi đang viết một ứng dụng cho Android và đang sử dụng các chuỗi công nhân để xử lý một số thông tin nhất định. Có đọc qua mã của tôi bây giờ tôi không chắc chắn nếu nó là thread an toàn.Chủ đề này có an toàn không?
Tôi đã viết một phiên bản đơn giản của mã của mình, tôi đã bỏ qua đối tượng Handler
được sử dụng để giao tiếp với luồng chính và rõ ràng là chính quy trình đó.
public class myClass implements Runnable
{
private String myString;
@Override
public void run()
{
myString = "Some Value";
}
}
Điều này được gọi bằng cách chạy một cái gì đó tương tự như thế này.
myClass class = new myClass();
Thread thread = new Thread(class);
thread.start()
Vì vậy, được mã này không đề an toàn bởi vì tôi đang sửa đổi myString
(khai báo trong các chủ đề chính) trong run()
chức năng?
Câu hỏi của bạn nhắc tôi rất nhiều bài viết này http://blogs.msdn.com/b/ericlippert/archive/2009/10/19/what-is-this-thing-you-call-thread-safe. aspx –