Көпағындық программалауды қолдау. Үрдістерді басқару. Жадының ұйымдастырылуы



бет1/6
Дата09.05.2023
өлшемі83,07 Kb.
#91350
түріПрограмма
  1   2   3   4   5   6

Monitor класы. Мьютекс пен семафорды пайдалану.

«Программалау технологиялары» пәні

Лектор: Абдрахманова М.Б.

Мақсаты және міндеттері

Дәрістің мақсаты: Студенттерде ағындарды синхронизациялау құралдарының қызметі және жұмыс істеу ерекшеліктері туралы түсінік қалыптастыру.

Дәрісті меңгеру нәтижесінде студенттер келесі қабілеттерге ие болады:

  • Monitor класының қызметін түсіну;
  • Мьютекс пен семафордың қызметтерін түсіну.

Monitor класы және бұғаттау

  • lock кілт сөзі C# программасында System.Threading атаулар кеңістігіндегі Monitor класында анықталған синхронизация құралдарына жылдам қатынау тәсілі болып табылады. Бұл класта объектіні бұғаттау үшін Enter() әдісі, ал бұғаттауды шешу үшін Exit() әдісі шақырылады. Төменде осы әдістердің жалпы формасы келтірілген:
  • public static void Enter(object obj)
  • public static void Exit(object obj)
  • мұндағы obj синхронизацияланатын объектіні білдіреді. Егер объект қолжетімді болмаса, онда Enter() әдісін шақырғаннан кейін шақырушы ағын объект қолжетімді болғанша күтеді. lock операторы ағындарды синхронизациялау құралдарын автоматты ұсынатын болғандықтан, Enter() және Exit() әдістері сирек қолданылады.

Monitor класы және бұғаттау

  • Monitor.Enter (_locker);
  • try { if (_val2 != 0)
  • Console.WriteLine (_val1 / _val2);
  • _val2 = 0; }
  • finally { Monitor.Exit (_locker); }

Monitor класы және бұғаттау

  • Monitor класының келесі әдісі пайдалы болуы мүмкін:
  • public static bool TryEnter(object obj)
  • Егер шақырушы ағын obj объекті үшін бұғаттауды алса, бұл әдіс true мәнін, кері жағдайда false логикалық мәнін қайтарады.
  • Алайда, бұл жағдайда да шақырушы ағынның өз кезегін күтуіне тура келеді. Тек, егер қажетті объект уақытша қолжетімсіз болса, TryEnter() әдісінің көмегімен ағындарды синхронизациялаудың басқа нұсқаларын пайдалануға болады.


Достарыңызбен бөлісу:
  1   2   3   4   5   6




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет