Параллельное выполнение
Это понятие впервые встречается на программе «Инженерия и системный подход к решению задач» — примерно 11-12 лет (5-6 класс).
Программа делает несколько дел сразу: герой бежит, музыка играет, счёт растёт — и никто никого не ждёт.
Один повар и две кастрюли: пока суп кипит, он мешает кашу — оба блюда готовятся одновременно.
Назвать три дела, которые любимая игра делает одновременно (движение героя, музыка, подсчёт очков).
Одновременная работа нескольких частей программы: каждая ветка выполняет свои команды, не дожидаясь остальных. Устройство может делать несколько дел по-настоящему сразу, а может очень быстро чередовать их — со стороны это неотличимо.
Собрать в Scratch два скрипта на «когда флажок нажат» — кот идёт, музыка играет; предсказать и проверить, что изменится, если склеить их в один скрипт друг за другом.
Выполнение нескольких потоков команд одновременно. Истинный параллелизм требует нескольких ядер процессора; на одном ядре ОС чередует задачи (конкурентность). Главная опасность — гонка: два потока меняют общие данные, и результат зависит от порядка переключений. Закон Амдала: ускорение ограничено долей программы, которую нельзя распараллелить.
Просуммировать 10 миллионов чисел в Python в один поток и в два (threading); сравнить время, объяснить результат через GIL и показать вариант с multiprocessing.
Частое заблуждение
«Компьютер с одним процессорным ядром делает несколько дел по-настоящему одновременно». Нет: одно ядро быстро чередует задачи; настоящая одновременность — только на нескольких ядрах.