скрутка генератора случайных ч
Автор admin
Суббота, 27 июня 2009 11:32
скрутка генератора случайных чисел try { cout « “Press to quit” « endl: CountedPtr jammer(new Jammer): CountedPtr butterer(new Butterer(jammer)); ThreadedExecutor executor: executor.execute(new Toaster(butterer)); executor.execute(butterer); executor.execute(jammer): cin.get(); executor.interrupt); } catch(Synchronization_Exception& e) { cerr « e.whatO « endl; } } ///:- Для упрощения опережающих ссылок мы определяем классы в порядке, обратном очередности их работы. Каждый из классов Jammer и Butterer содержит мутекс, объект Condition и некоторую внутреннюю информацию состояния, изменение которой указывает, что процесс должен приостановить или возобновить свою работу (классу Toaster все это не нужно, потому что он поставляет объекты и ничего ждать не обязан). Две функции ru п () выполняют операцию, устанавливают флаг состояния, а затем приостанавливают задачу функцией wait(). Функции moreToastReady() и moreButteredToastReady() изменяют соответствующие флаги состояния, указывая, что ситуация изменилась и процесс должен рассмотреть возможность возобновления, а затем вызывают sign
Комментарии закрыты.
Последние комментарии