G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon
Download 1.46 Mb.
|
ParVychGafGal (1)
- Bu sahifa navigatsiya:
- ThreadState
- Go usuli
Mavzuni bajarish holati
Tarmoqning bajarilish holatini uning xususiyati orqali topish mumkin ThreadState. Bu mulk qaytadi
element
ro'yxatga olish ThreadState turi . Biroq, qiymatlarning aksariyati ortiqcha, foydalanilmagan yoki eskirgan. Quyidagi diagramma ko'rsatilgan ip holatlari va holatni o'zgartirish usullari: ThreadState xususiyati diagnostika maqsadlari uchun foydalidir, lekin sinxronlash uchun mos emas, chunki ipning holati bo'lishi mumkin ThreadState-ni sinab ko'rish va unga amal qilish o'rtasidagi o'zgarish ma `lumot. blokirovka qilish Buni ta'minlash uchun eksklyuziv qulf ishlatiladi bir vaqtning o'zida faqat bitta mavzu kodning ma'lum bo'limlarini kiritishi mumkin edi. Ikki 61 Machine Translated by Google asosiy eksklyuziv qulflar - bu qulflash bayonoti va Mutex. Operator qulf tezroq va qulayroq. Quyidagi misolni ko'rib chiqing: sinf ThreadUnsafe { statik int _val1 = 1, _val2 = 1; statik void Go() { agar (_val2 != 0) Console.WriteLine(_val1 / _val2); _val2 = 0; } } Agar Go usuli chaqirilsa , bu sinf xavfsiz emas bir vaqtning o'zida ikkita mavzu bo'lsa, siz bo'linish xatosini olishingiz mumkin null, chunki _val2 to'g'ridan-to'g'ri bitta ipda null ga o'rnatilishi mumkin, chunki boshqa ip if operatorining bajarilishi va o'rtasida edi Console.WriteLine(). Qulflash bayonoti yordamida muammoni qanday hal qilishingiz mumkin : ThreadSafe sinfi { statik faqat o'qish ob'ekti _locker = new object(); statik int _val1, _val2; statik void Go() { qulf (_locker) { agar (_val2 != 0) Console.WriteLine(_val1 / _val2); _val2 = 0; } 62 Machine Translated by Google } } Sinxronlash ob'ektida faqat bitta ip bloklanishi mumkin (in bu holda _locker) uchun marta va har qanday ziddiyatli iplar qulf bo'shatilguncha bloklanadi. Agar bir nechta ip qulfga ishora qiladi, ular navbatda va birinchi kelgan, birinchi xizmat asosida blokirovka berish. DA Bunday holda, biz Go usuli ichidagi mantiqni , shuningdek, _val1 va maydonlarni himoya qilamiz Download 1.46 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling