Зачем у потоков есть возможность останавливать выполнение Caller-а? C++
У std::thread есть метод join(), который останавливает выполнение вызывающей функции, пока не будет выполнен поток. Но зачем это нужно? Ведь суть потока в выполнении вещей параллельно с вызывающей функцией, разве нет? Разве вместо join не проще просто написать код без потока, ведь эффект будет одинаковый?