Научился: Различать когда имеет смысл разделять задачу на потоки, а когда нет.
Трудности: Помню в студенческие годы, после долгой сибирской зимы, хотелось ускорить приход весны, а громадные сугробы снега таяли не очень охотно. Мы разделяли сугробы на меньшие части (отдельные потоки) и наглядно был виден результат разделения процесса на потоки. В тоже время не тронутые сугробы ещё долгое время продолжали своё существование.
В программистскую фирму поступил срочный заказ на изготовление сложной программы требующей некой новой технологии Х. Однако в фирме всего один специалист, владеющий технологией Х. Поэтому распределение работы между
несколькими программистами не даст необходимого эффекта.

Научился: В видео интересные примеры многопоточности :)
Мой вариант, когда многопоточность может быть эффективна. Например, стоит задача найти минимальный элемент в огромном массиве. Можно разбить этот массив на несколько более мелких, далее создать несколько потоков, каждый из которых находит минимальный элемент в своём подмассиве. В результате, у нас получится новый массив минимальных элементов и уже в нем основной поток может найти самый минимальный элемент. Чем больше массив и чем больше потоков, тем большая выгода от многопоточности.
Вариант, когда многопоточность не эффективна. Сложно придумать вариант, если я правильно понял, основная идея в том, что задачу сложно распараллелить, отсутствуют независимые части, промежуточные этапы и результаты. Поэтому я выбрал следующий вариант: вывод информации в терминал или работа машинистки на печатной машинке. Как известно, информация выводится строго сверху-вниз и слева-направо. (Допустим терминал крайне допотопный и не умеет перемещать курсор) Невозможно напечатать сначала первую строку, потом прыгнуть на пятую, вывести одну букву и потом обратно на первую. Поэтому невозможно разбить задачу вывода на несколько потоков - когда один поток выводит первую строку, другой одновременно с ним пятую и так далее. Вся работа упирается в мощность одного процесса или в скорость работы одной машинистки. Другими словами, если стоит задача набрать один текст формата А4 на печатной машинке, то несколько машинисток не смогут одновременно набирать на одной машинке, скорость работы упирается в скорость набора машинистки. Вы скажете, что можно набирать одновременно на нескольких машинках и получится несколько копий одного листа А4, но суть не меняется. Другие машинистки не могут скооперироваться, что напечатать быстрее один экземпляр.
Трудности: Придумать варианты эффективности и не эффективности многопоточности.