TLDR; Các lớp có ghi chú trên sẽ có các phương thức tĩnh an toàn bởi vì các kỹ sư của Microsoft đã viết mã theo một cách an toàn, có lẽ bằng cách sử dụng các khóa hoặc các cơ chế đồng bộ hóa luồng khác " (trích dẫn lấy từ http://odetocode.com/Articles/314.aspx)
Xem chi tiết
nó là gì? Không có gì, ngoại trừ mã được viết cho lớp đó.
Tuyên bố là tuyên bố cho bạn biết rằng các lập trình viên đã viết lớp đã đảm bảo rằng tất cả các thành viên tĩnh (phương pháp và thuộc tính) là an toàn chủ đề (nhưng chưa làm như vậy cho các thành viên).
Đã đảm bảo an toàn là chủ đề an toàn vì tĩnh, rất có khả năng chúng sẽ được gọi bởi nhiều luồng, do đó, chúng đặt thêm công việc cần thiết để đảm bảo điều này sẽ ổn. Thường thì các phương thức tĩnh cũng là các hàm không trạng thái, nghĩa là chúng đã được an toàn chủ đề chung (không cần thêm công việc).
Ngược lại, ví dụ các thành viên, tuyên bố đơn giản là họ nói với bạn rằng họ không cẩn thận với họ.
Trường hợp thường sẽ được tạo bởi một chuỗi duy nhất và chỉ truy cập theo chuỗi đó; nếu cá thể không bao giờ được truy cập bởi nhiều luồng, thì sự an toàn của luồng không phải là vấn đề, do đó các lập trình viên không bận tâm thêm nó.
Tuyên bố không phải là xác nhận quyền sở hữu về bất kỳ thuộc tính cố hữu nào của tĩnh so với phiên bản; cả hai có thể không an toàn trừ khi bạn đặt mã cụ thể vào để đảm bảo nhiều chuỗi có thể truy cập chúng mà không gặp sự cố (hoặc nếu tự nhiên chúng đã là luồng an toàn, ví dụ: chức năng không quốc tịch).
Nó chỉ đơn giản là một tuyên bố rằng các lập trình viên đã viết những lớp học đã đảm bảo rằng các thành viên tĩnh được an toàn, nhưng đã không làm như vậy cho các thành viên ví dụ.
Nguồn
2017-06-03 13:30:14
Phần trong dấu ngoặc là nguyên nhân gây nhầm lẫn khi đọc - thay vì đọc nó là: * Thành viên * tĩnh công cộng * thuộc loại này là an toàn chỉ. Điều này có nghĩa rằng các thành viên tĩnh của đối tượng này Type là threadsafe, nó không đề cập đến một "public static Type;" ví dụ được khai báo trong mã của bạn. –