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


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

Semafor


.NET platformasi bizga taklif qiladigan yana bir vosita
vaqt boshqaruvlari semaforlarni ifodalaydi. Semaforlar ruxsat beradi ma'lum miqdordagi ob'ektlarga kirishni cheklash. Semafor shunga o'xshash va Mutex faqat semaforning "egasi" yo'q. Har qanday oqim
semaforning Release usulini chaqirishi mumkin , Mutex va lock bilan esa faqat qulfni olgan ip uni bo'shatishi mumkin. Semaforlar mumkin
parallellikni cheklashda foydali bo'lishi - oldini olish ham ma'lum bir kod qismini bajarishdan ko'p sonli iplar
bir vaqtning o'zida. Quyidagi misolda beshta ip bir kechaga kirishga harakat qilmoqda
bir vaqtning o'zida faqat uchta oqimdan foydalanishga imkon beruvchi klub:
sinf TheClub
{


statik SemaphoreSlim _sem = yangi SemaphoreSlim(3,3);
statik bo'shliq Main()
{
for (int i = 1; i <= 5; i++) new Thread(Enter).Start(i);
67
Machine Translated by Google


}


statik void Enter (ob'ekt identifikatori)


{

Console.WriteLine(id +
_sem.Wait();
Console.WriteLine(id +
" kirmoqchi");


" bor!");

Thread.Sleep(1000 * (int)id);

Console.WriteLine(id +
_sem.Release();
}
}
" ketmoqda");

Semafor yaratish uchun Semafor sinfi konstruktoridan foydalaning: statik Semafor sem = yangi Semafor (3, 3). Uning konstruktori ikkita oladi parametr: birinchisi dastlab qancha ob'ekt bo'lishini belgilaydi


semafor mavjud va ikkinchi parametr maksimal sonni belgilaydi ob'ektlar berilgan semafordan foydalanadi. Bu holda, biz faqat bor uchta ip bir vaqtning o'zida tungi klubda bo'lishi mumkin, shuning uchun maksimal soni 3. Asosiy funksionallik usulda jamlangan
Mavzuda bajariladigan Enter . Qabul qilishni kutish uchun boshida semafor Wait usulidan foydalanadi. Semafor chiqarilgandan keyin joy, bu ip bo'sh joyni to'ldiradi va barchasini bajarishni boshlaydi
Keyingi qadamlar. O'qishni tugatgandan so'ng, biz semaforni chiqaramiz Release usuli yordamida . Shundan so'ng, semaforda bir joy bo'shatiladi, boshqa ip bilan band bo'lgan.


Download 1.46 Mb.

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




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