Программирование на языке Ruby
Шрифт:
Конечно, настоящие шахматные программы работают не так.
13.2.9. Реализация параллельных итераторов
Предположим, что нужно параллельно обходить несколько объектов, то есть для каждого объекта найти первый элемент, потом второй, потом третий и т.д.
Рассмотрим следующий пример. Пусть
Можно было бы, конечно, использовать для этой цели
Обратите внимание: мы не предполагаем, что все объекты имеют одно и то же число элементов. Если один итератор доходит до конца раньше остальных, то он будет генерировать значения
Конечно, можно написать и более общий метод, который на каждой итерации будет обрабатывать более одного элемента. (В конце концов, не все итераторы возвращают по одному значению за раз.) Можно было бы в первом параметре передавать число значений для каждого итератора.
Можно также пользоваться произвольными итераторами (а не только стандартным
Впрочем, мы полагаем, что приведенного кода достаточно для большинства целей. Вариации на эту тему оставляем читателю в качестве упражнения.
13.2.10. Параллельное рекурсивное удаление
Забавы ради напишем код, который будет удалять дерево каталогов. Процедура рекурсивного удаления использует потоки. Как только обнаруживается очередной подкаталог, мы запускаем новый поток, который будет обходить его и удалять содержимое.
Созданные в ходе работы программы потоки хранятся в массиве
Отметим также, что в блок потока передается полное имя файла
Прежде чем удалять очередной каталог, мы должны дождаться завершения всех созданных в процессе его обхода потоков.
Вечера в древности
Проза:
классическая проза
историческая проза
рейтинг книги
Победить тьму...
Любовные романы:
любовно-фантастические романы
рейтинг книги
Дорога Короля
Фантастика:
фэнтези
рейтинг книги
Завтра война
1. Завтра война
Фантастика:
космическая фантастика
рейтинг книги
Уго Чавес
1432. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
рейтинг книги
Следы на снегу
Проза:
современная проза
рейтинг книги
Платина и шоколад
Любовные романы:
любовно-фантастические романы
эро литература
рейтинг книги
Слово авторитета
Я – вор в законе
Детективы:
боевики
рейтинг книги
Призыв
Стивен Кинг поражен…
Фантастика:
ужасы и мистика
рейтинг книги
Острова в океане
Книга на все времена
Проза:
классическая проза
рейтинг книги
Я до сих пор царь. Книга XXXII
32. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Хищники
рейтинг книги