cutor: for(int i = 0: i < 5: i
Автор admin Среда, 24 июня 2009 11:32
cutor: for(int i = 0: i < 5: i++) executor.execute(new LiftOff(10. i)): } catch(Synchronization_Exception& e) { cerr « e.whatO « endl: } } ///:- Иногда для создания и управления всеми программными потоками в системе достаточно одного объекта Executor. Многопоточный код в любом случае должен размещаться в блоке try, потому что при возникновении каких-либо проблем функция execute() объекта-исполнителя может запустить исключение Synchronization_Exception. Это относится ко всем функциям, изменяющим состояние объектов синхронизации, включая запуск потоков, захват мутексов, ожидание по условию и т. д. (см. далее в этой главе). При завершении всех задач объектом-исполнителем программа немедленно завершается. В предыдущем примере объект ThreadedExecutor создает программный поток для каждой запускаемой задачи, однако вы легко можете изменить режим выполнения задач, заменив ThreadedExecutor другим типом исполнителя. Для наших целей класс ThreadedExecutor вполне подходит, но в коммерческом коде его применение может привести к чрезмерным затратам на создание многочисленных программных потоков. В таких случаях лучше
Комментарии закрыты.
Последние комментарии