Kecuali untuk posting blog di sana-sini, menggambarkan atribut khusus yang dibuat seseorang, tetapi itu tampaknya tidak mendapatkan daya tarik - seperti yang menggambarkan bagaimana menegakkan keabadian , yang lain tentang Mendokumentasikan Keamanan Thread , memodelkan atribut setelah anotasi JCIP - ada di sana Adakah standar yang muncul? Adakah yang MS rencanakan untuk masa depan?
Ini adalah sesuatu yang harus menjadi standar, jika ada kemungkinan interoperabilitas antara perpustakaan secara bersamaan. Baik untuk keperluan dokumentasi, dan juga untuk memberi makan alat uji statis / dinamis.
Jika MS tidak melakukan apa pun ke arah itu, itu bisa dilakukan pada CodePlex - tapi saya juga tidak bisa menemukan apa pun di sana.
<opinion> Keamanan konkurensi dan utas sangat sulit dalam bahasa imperatif dan objek-objek seperti C # dan Java, kita harus mencoba menjinakkannya, hingga mudah-mudahan kita beralih ke bahasa yang lebih tepat. </opinion>
Jawaban:
Masalah dengan immutabilitas dan keselamatan benang adalah bahwa mereka bukan konsep hitam dan putih, tetapi ada sejumlah jaminan yang mungkin dalam hal itu. Mengurangi itu ke atribut sederhana mungkin sulit. IMO atribut yang sederhana
ThreadSafe
danImmutable
tidak cukup. Masih bekerja di luar seperangkat atribut menangkap setidaknya semantik paling penting terdengar menjanjikan bagi saya.Misalnya ambil suatu
AddRange
metode. Ini mungkin thread yang cukup aman untuk tidak pernah merusak keadaan koleksi yang mendasarinya, tetapi mungkin bukan atom. Implementasi umum dengan properti ini mungkin hanya memanggilAdd
metode atom untuk setiap elemen.Di sisi imutabilitas, kami juga memiliki aspek yang berbeda:
Satu penjelasan adalah konteks ini sudah ada:
Pure
untuk metode bebas efek samping.sumber
Saya tidak berpikir ada seperangkat standar (bahkan kuasi) sekarang. Proyek-proyek yang terisolasi melakukan beberapa hal dengan cara mereka sendiri. Saya posting thread mereka berbicara tentang imutabilitas melalui kontrak kode dan bahkan memanggang langsung ke sistem tipe. Saya telah melihat lebih sedikit tentang keamanan benang.
sumber