SpinLock

Strukturnya SpinLock adalah primitif sinkronisasi mutual-exclusion tingkat rendah yang berputar saat menunggu untuk mendapatkan kunci. Pada komputer multicore, ketika waktu tunggu diperkirakan pendek dan ketika ketidakcocokan minimal, SpinLock dapat berkinerja lebih baik daripada jenis kunci lainnya. Namun, kami sarankan Anda hanya menggunakan SpinLock ketika Anda menentukan dengan membuat profil bahwa System.Threading.Monitor metode atau Interlocked metode secara signifikan memperlambat performa program Anda.

SpinLock dapat menghasilkan potongan waktu alur bahkan jika belum memperoleh kunci. Ini dilakukan untuk menghindari inversi prioritas alur, dan untuk memungkinkan pengumpul sampah membuat kemajuan. Ketika Anda menggunakan SpinLock, pastikan bahwa tidak ada alur yang dapat menahan kunci selama lebih dari rentang waktu yang sangat singkat, dan tidak ada alur yang dapat memblokir saat menahan kunci.

Karena SpinLock adalah jenis nilai, Anda harus secara eksplisit meneruskannya dengan referensi jika Anda berniat dua salinan untuk merujuk ke kunci yang sama.

Untuk informasi selengkapnya tentang cara menggunakan jenis ini, lihat System.Threading.SpinLock. Sebagai contoh: lihat Cara: Menggunakan SpinLock untuk sinkronisasi tingkat rendah.

SpinLockmendukung mode pelacakan-alur yang dapat Anda gunakan selama fase pengembangan untuk membantu melacak alur yang menahan kunci pada waktu tertentu. Mode pelacakan alur sangat berguna untuk penelusuran kesalahan, tetapi kami sarankan Anda menonaktifkannya dalam versi rilis program Anda karena dapat memperlambat performa. Untuk informasi selengkapnya, lihat Cara: Mengaktifkan Mode Pelacakan Alur di SpinLock.

Lihat juga