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


Wait(), Pulse() және PulseAll() әдістерінің формалары (мысал 1)



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

Wait(), Pulse() және PulseAll() әдістерінің формалары (мысал 1)

  • Төменде Wait() әдісінің жиі қолданылатын екі формасы көрсетілген.
  • public static bool Wait(object obj) /* күту объект босатылғаны туралы хабарлама түскенге дейін жалғасады */
  • public static bool Wait (object obj, int миллисекунд_кідіріс) /* күту объект босатылғаны туралы хабарлама түскенге дейін және кідіріс уақыты аяқталғанға дейін жалғасады */
  • мұндағы obj – босатылуы күтілетін объект.
  • Pulse() және PulseAll() әдістерінің жалпы формалары:
  • public static void Pulse(object obj)
  • public static void PulseAll(object obj)
  • мұндағы obj – босатылатын объект.

Өзара бұғаттау және жарыс

  • Өзара бұғаттау – екі ағын бір-бірінің белгілі бір әрекеттерін күту жағдайы.
  • Жарыс жағдайы – синхронизацияланбаған бірнеше ағын бір уақытта бір ресурсқа қатынасуға талпыну жағдайы.

MethodImplAttribute атрибутын пайдалану (мысал 2)

  • Егер әдісті толығымен синхронизациялау қажет болса, lock операторының орнына MethodImplAttribute атрибутын пайдалануға болады. Бұл әдіс Sуstem.Runtime.CompilerServices атаулар кеңістігінде анықталған. Синхронизациялау үшін қолданылатын конструктор:
  • public MethodImplAttribute(MethodImplOptions methodImplOptions)
  • Мұндағы methodImplOptions жүзеге асыру атрибутын білдіреді.
  • Әдісті синхронизациялау үшін MethodImplOptions.Synchronized атрибутын көрсету жеткілікті. Бұл атрибут this сілтемесі арқылы қолжетімді ағымдағы объект үшін бұғаттауды орындайды. Егер әдіс статикалық болса, онда тип бұғатталады. Сондықтан, бұл атрибутты ашық объектілер мен кластарда пайдалану мүмкін емес.

мьютекс

  • Мьютекс – .NET Framework ортасына кірістірілген синхронизация құралдарының бірі.
  • Мьютекс өзара жоққа шығаратын синхронизация объектісін бейнелейді. Бұл мьютекске ағындар тек кезегімен қол жеткізе алады дегенді білдіреді. Мьютекс ортақ ресурс бір мезгілде бір ғана ағында пайдаланылуы мүмкін жағдайларға арналған. Жүйелік журнал бірнеше процестерде бірлесіп пайдаланылады, бірақ олардың біреуінде ғана деректер осы журналдың файлына кез келген уақытта жазылуы мүмкін. Бұл жағдайда процестерді үндестіру үшін мьютекс өте қолайлы.


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




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

    Басты бет