Программирование на языке Ruby
Шрифт:
Конечно, настоящие шахматные программы работают не так.
13.2.9. Реализация параллельных итераторов
Предположим, что нужно параллельно обходить несколько объектов, то есть для каждого объекта найти первый элемент, потом второй, потом третий и т.д.
Рассмотрим следующий пример. Пусть
Можно было бы, конечно, использовать для этой цели
Обратите внимание: мы не предполагаем, что все объекты имеют одно и то же число элементов. Если один итератор доходит до конца раньше остальных, то он будет генерировать значения
Конечно, можно написать и более общий метод, который на каждой итерации будет обрабатывать более одного элемента. (В конце концов, не все итераторы возвращают по одному значению за раз.) Можно было бы в первом параметре передавать число значений для каждого итератора.
Можно также пользоваться произвольными итераторами (а не только стандартным
Впрочем, мы полагаем, что приведенного кода достаточно для большинства целей. Вариации на эту тему оставляем читателю в качестве упражнения.
13.2.10. Параллельное рекурсивное удаление
Забавы ради напишем код, который будет удалять дерево каталогов. Процедура рекурсивного удаления использует потоки. Как только обнаруживается очередной подкаталог, мы запускаем новый поток, который будет обходить его и удалять содержимое.
Созданные в ходе работы программы потоки хранятся в массиве
Отметим также, что в блок потока передается полное имя файла
Прежде чем удалять очередной каталог, мы должны дождаться завершения всех созданных в процессе его обхода потоков.
Третий. Том 3
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
рейтинг книги
Погранец
2. Решала
Фантастика:
фэнтези
боевая фантастика
альтернативная история
рейтинг книги
Убивать чтобы жить 4
4. УЧЖ
Фантастика:
боевая фантастика
рпг
рейтинг книги
Техник-ас
Фантастика:
боевая фантастика
рейтинг книги
Иной. Том 3. Родственные связи
3. Иной в голове
Фантастика:
боевая фантастика
рпг
аниме
рейтинг книги
Ваантан
10. Другая сторона
Фантастика:
боевая фантастика
рпг
рейтинг книги
Запрети любить
1. Навсегда в моем сердце
Любовные романы:
современные любовные романы
рейтинг книги
Я граф. Книга XII
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Имперец. Том 3
2. Имперец
Фантастика:
боевая фантастика
попаданцы
альтернативная история
рейтинг книги
Кодекс Охотника. Книга XVII
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Афганский рубеж 4
4. Рубеж
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Охотник за головами
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
рейтинг книги
Адвокат Империи 8
8. Адвокат империи
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
фантастика: прочее
попаданцы
рейтинг книги
Мусорщик
3. Наемник
Фантастика:
боевая фантастика
космическая фантастика
рейтинг книги