G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon
Download 1.46 Mb.
|
ParVychGafGal (1)
- Bu sahifa navigatsiya:
- Enter .
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling