Книга: Язык программирования Euphoria. Справочное руководство
2.16 Многозадачность
2.16 Многозадачность
Набор подпрограмм данного раздела позволяет вам организовывать в своей программе множественные независимые задачи, решаемые в режиме разделения времени. Каждая задача имеет свою собственную текущую исполняемую команду, свой собственный стек вызовов и своё собственное множество частных переменных. Локальные (местные) и глобальные переменные программы являются общими для всех задач. Когда в задаче вызывается подпрограмма task_yield(), выполнение задачи приостанавливается, управление передаётся диспетчеру задач Euphoria, и он решает, какую задачу из общей очереди следует поставить на дальнейшее исполнение.
Демонстрационная игра The Language War, lw.ex, широко использует механизм многозадачности для создания модели боя, в котором участвуют многочисленные независимо движущиеся корабли, торпеды, фазоры и т.д. Просмотрите также демо-программу taskwire.exw для Windows, и демо-программу news.exu для Linux и FreeBSD.
task_clock_start (задача_часы_старт)
- перезапускает часы диспетчера задач
task_clock_stop (задача_часы_стоп)
- останавливает часы диспетчера задач
task_create (задача_новая)
- создаёт новую задачу
task_list (задача_список)
- выдаёт список всех задач
task_schedule (задача_план)
- задаёт диспетчеру план решения задачи
task_self (задача_какая)
- выдаёт идентификатор текущей задачи (номер)
task_status (задача_состояние)
- выдаёт текущее состояние задачи (активна, приостановлена, прервана)
task_suspend (задача_стоп)
- приостанавливает решение задачи
task_yield (задача_другая)
- управление задачами передаётся диспетчеру, запускающему на исполнение другую задачу.
...
- 2.1 Стандартные типы
- 2.2 Манипулирование рядами
- 2.3 Сравнение, поиск и сортировка
- 2.4 Преобразование и сопоставление образцов
- 2.5 Математика
- 2.6 Битовые логические операции
- 2.7 Ввод/вывод для файлов и устройств
- 2.8 Управление мышью (DOS32)
- 2.9 Взаимодействие с операционной системой
- 2.10 Специальные низкоуровневые подпрограммы
- 2.11 Отладка
- 2.12 Графика и звук
- 2.13 Интерфейс уровня машины
- 2.14 Динамические вызовы
- 2.15 Вызов функций Си (WIN32 и Linux)
- 2.16 Многозадачность
- 8.5.6. Кооперативная многозадачность
- 1.2.5. Многозадачность
- Глава 14. Многозадачность
- Многозадачность и многопоточность в современных операционных системах
- 14.6. Сохранение и загрузка состояния приложений iOS, использующих многозадачность
- Существует ли многозадачность?
- МНОГОЗАДАЧНОСТЬ И ВНИМАНИЕ
- 14. Многозадачность с единственным процессом
- Что такое Windows и зачем она нужна?