Различие между объектом-событием и условной переменной

Необходимо, вероятно, запустить с небольшой теории и простых примеров такой как алгоритм смещения средней точки . Необходимо также изучить немного [приблизительно 111] Шум перлина , если Вы интересуетесь генерацией графики. Я использовал это для запущения меня с моего заключительного проекта года на процедурном поколении.

Фракталы тесно связаны с процедурным поколением.

Terragen и SpeedTree покажет Вам некоторые удивительные возможности процедурного поколения.

Процедурное поколение является техникой, которая может использоваться на любом языке (это определенно не ограничивается процедурными языками, такими как C, поскольку это может использоваться на языках OO, таких как Java и Логические языки, такие как Пролог). Хорошее понимание рекурсии на любом языке усилит Ваше схватывание Процедурного Поколения.

Что касается 'серьезного' или неигрового кода, процедурные методы поколения привыкли к:

  • моделируют рост городов для планирования управление трафиком
  • для моделирования роста кровеносных сосудов
  • , SpeedTree используется в фильмах и архитектурных представлениях

14
задан WiSaGaN 28 March 2014 в 06:22
поделиться

2 ответа

Объекты событий - это объекты уровня ядра. Они могут совместно использоваться через границы процессов и поддерживаются во всех версиях ОС Windows. При желании их можно использовать в качестве собственных автономных блокировок общих ресурсов. Так как они являются объектами ядра, ОС имеет ограничения на количество доступных событий, которые могут быть выделены за один раз.

Переменные условия являются объектами уровня пользователя. Они не могут совместно использоваться через границы процессов и поддерживаются только в Vista / 2008 и более поздних версиях. Они не действуют как собственные блокировки, но требуют, чтобы с ними была связана отдельная блокировка, например критическая секция. Поскольку они являются объектами пользователя, количество доступных переменных ограничено доступной памятью. Когда условная переменная переводится в спящий режим, она автоматически освобождает указанный объект блокировки, чтобы другой поток мог получить его. Когда условная переменная «просыпается», она автоматически повторно получает указанный объект блокировки.

С точки зрения функциональности, условную переменную можно рассматривать как логическую комбинацию двух работающих вместе объектов - событие с ключом и объект блокировки. Когда переменная условия переводится в спящий режим, она сбрасывает событие, снимает блокировку, ожидает сигнала события, а затем повторно устанавливает блокировку. Например, если вы используете критическую секцию в качестве объекта блокировки, SleepConditionalVariableCS () аналогична последовательности вызовов ResetEvent () , LeaveCriticalSection () , WaitForSingleObject () и EnterCriticalSection () . Если вы используете SRWL в качестве замка,

25
ответ дан 1 December 2019 в 09:33
поделиться

Они очень похожи, но объекты событий работают через границы процесса, а переменные условий - нет. Из документации MSDN по условным переменным :

Условные переменные находятся в пользовательском режиме. объекты, которые нельзя использовать совместно процессов.

Из документации MSDN по объектам событий :

Потоки в других процессах могут открывать дескриптор существующего объекта события указав его имя при вызове Функция OpenEvent.

2
ответ дан 1 December 2019 в 09:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: