В чем смысл запускать на Х-ядерном процессоре более Х потоков?
Самый простой пример в котором используется несколько потоков, это работа с сетью.
Если есть всего один поток, и он запрашивает данные из сети, то он остановит свое выполнения до момента, когда эти данные придут. Если же будет несколько потоков, то пока один ждет данные из сети, другой может спокойно продолжать работу. Помимо работы с сетью, есть еще операции чтения и записи, которые в некоторых случаях могут быть медленными.
да эффективность падает при переключении потоков, НО для нас важно исполнение задач именно параллельно, например ты ведешь мышкой по экрану - это отдельный процесс, который работает и должен работать параллельно. 
опятьже нужно понимать что один поток не может выполняться эффективно изза задержек -> как уже упомянули одни из самых длительных задержек при обращении к сети или жесткому диску, пока данные оттуда придут, можно переключить задачу, без потери производительности.
при этом следует помнить что например поступление данных из оперативной памяти тоже имеет свои задержки, и если и пока очередная порция данных из оперативной памяти поступает, тоже можно переключиться на процесс в котором данные уже поступили и тд.