G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon


Download 1.46 Mb.
bet36/85
Sana24.12.2022
Hajmi1.46 Mb.
#1062519
1   ...   32   33   34   35   36   37   38   39   ...   85
Bog'liq
ParVychGafGal (1)

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.

    1. 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:
1   ...   32   33   34   35   36   37   38   39   ...   85




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling