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


Muteksni chiqarish bir necha mikrosekundni oladi - taxminan 50 marta qulfdan


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

Muteksni chiqarish bir necha mikrosekundni oladi - taxminan 50 marta
qulfdan sekinroq .

Mutex sinfining konstruktori mutex kerak yoki yo'qligini aniqlaydi


dastlab chaqiruvchi ipga va uning nomiga egalik qiladi. Muteksda bir nechta mavjud dizaynerlar. Quyida ikkita eng keng tarqalgan konstruktorlar keltirilgan:
umumiy Mutex()
ommaviy Mutex (bool dastlab Owned)
Konstruktorning birinchi shaklida mutex yaratiladi, bu
dastlab hech kim egalik qilmaydi. Va ikkinchi shaklda, dastlabki holat
Muteks chaqiruvchi ip tomonidan qabul qilinadi, agar initialOwned parametri o'rnatilgan bo'lsa
mantiqiy haqiqat. Aks holda, mutexga hech kim egalik qilmaydi.
Muteksni olish uchun dastur kodida qo'ng'iroq qiling
bu mutex uchun WaitOne() usuli. WaitOne() usuli sinf tomonidan meros qilib olingan Thread.WaitHandle sinfidan mutex. WaitOne() usuli shu qadar kutadi
u chaqirilgan ipning mutexi olinmaydi. Binobarin, bu usul chaqiruvchi ipning bajarilishini bloklaydi
belgilangan mutex mavjud bo'ladi. Bu erda yaratish misoli va

mutexdan foydalanish:




sinf OneAtATimeIltimos


{
statik bo'shliq Main()


{


foydalanish (var mutex = yangi Mutex (noto'g'ri, "Mutex1"))


{


agar (!mutex.WaitOne(TimeSpan.FromSeconds(3), false))
{


Console.WriteLine("Boshqa ilova namunasi ishlamoqda. Xayr!");
qaytish;
66

Machine Translated by Google
}
RunProgram();
}
Console.ReadLine();
}
statik bekor RunProgram()
{


Console.WriteLine("Ishlayapti. Chiqish uchun Enter tugmasini bosing");


Console.ReadLine();
}
}

    1. Download 1.46 Mb.

      Do'stlaringiz bilan baham:
1   ...   34   35   36   37   38   39   40   41   ...   85




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