конструктор (от слова construct — создавать) – это специальный метод класса, который предназначен для инициализации элементов класса некоторыми начальными значениями.
деструктор (от слова destruct — разрушать) — специальный метод класса, который служит для уничтожения элементов класса. Чаще всего его используют тогда, когда в конструкторе,при создании объекта класса, динамически был выделен участок памяти и необходимо эту память очистить, если эти значения уже не нужны для дальнейшей работы программы.
В4: Перечислите существующие операции над семафорами.
Семафоры представляют собой доступные ресурсы, которые могут быть приобретены несколькими потоками в одно и то же время, пока пул ресурсов не опустеет. Тогда дополнительные потоки должны ждать, пока требуемое количество ресурсов не будет снова доступно. Семафоры очень эффективны, поскольку они позволяют одновременный доступ к ресурсам. Семафор есть логическое расширение мьютекса - семафор со счетчиком 1 эквивалентен мьютексу, но счетчик может быть и более 1.
Операции с семафорами: Инициализация, Увеличение на 1, Ждать пока счетчик станет больше 0, после этого уменьшить счетчик на единицу.
Семафор — объект, позволяющий войти в заданный участок кода не более чем n потокам. Определение введено ЭдсгеромДейкстрой.Семафор — это объект, с которым можно выполнить три операции.
1) init(n):
счётчик:= n
2) enter():
ждать пока счётчик станет больше 0; после этого уменьшить счётчик на единицу.
3) leave():
увеличить счётчик на единицу.
Пример: Не более пяти потоков могут одновременно выполнять функцию DoSomething().
semaphore.init(5);
. ....
voidDoSomething(void)
{
semaphore.enter();
. ......
semaphore.leave();
}
Билет 27