Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 30344|Jawab: 2

[Sumber] Pengaman ulir C# dengan kunci

[Salin tautan]
Diposting pada 13/06/2016 17.26.25 | | |

Jika kode Anda berada dalam proses yang memiliki beberapa utas yang berjalan secara bersamaan, kode mungkin menjalankan kode secara bersamaan. Jika hasil setiap eksekusi sama dengan satu utas, dan nilai variabel lain sama seperti yang diharapkan, itu aman utas.
Dengan kata lain, antarmuka yang disediakan oleh kelas atau program bersifat atom untuk utas atau beralih di antara beberapa utas tidak mengarah pada ambiguitas dalam hasil eksekusi antarmuka, yang berarti kita tidak perlu mempertimbangkan sinkronisasi.
Masalah keamanan ulir disebabkan oleh variabel global dan statis.
Jika setiap utas hanya memiliki operasi baca untuk variabel global dan variabel statis, tetapi tidak ada operasi tulis, secara umum, variabel global ini aman untuk utas; Jika beberapa utas melakukan operasi baca dan tulis pada variabel secara bersamaan, sinkronisasi utas umumnya diperlukan, jika tidak, hal itu dapat memengaruhi keamanan utas.

Tujuan kunci adalah untuk mencegah operasi bersamaan saat eksekusi multi-utas, dan objek dari jenis kunci referensi hanya memungkinkan satu utas beroperasi pada satu waktu di area terkunci.

Kunci hanya dapat mengunci satu variabel jenis referensi, yaitu mengunci alamat




Ada perbedaan antara hasil berlari dengan dan tanpa penguncian:

Setelah mengunci: nilai i akan menurun satu per satu, tidak akan ada lompatan, tidak ada output berulang, hingga nilai 0;

Tidak ada kunci: output nilai i akan melompat, menurun secara terputus-putus, dan mungkin juga memiliki output nilai -1;

Alasan: Setelah menambahkan kunci, hanya satu utas yang dapat mengeksekusi kode di area terkunci pada satu waktu, dan kedua utas dijalankan secara berurutan, sehingga tidak akan ada output yang terganggu.




Mantan:Pengguna dibatalkan di luar dialog simpan (MS Visual Database Tools)
Depan:Kelas DBHelper bagus yang menjalankan prosedur tersimpan
Diposting pada 14/06/2016 10.53.36 |
 Tuan tanah| Diposting pada 10/02/2022 09.18.58 |
Monitor Prinsip Kunci .NET/C# memberikan penjelasan mendalam
https://www.itsvse.com/thread-9633-1-1.html
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com