Многопоточность нужна, чтобы мы могли параллельно решать несколько задач внутри приложения. Например, показывать анимацию солнышка, запрашивать данные о температуре с сервера и проигрывать звуки птиц. Но начнём с основ. Существуют два очень похожих понятия: процессы и потоки. И многие их путают в самом начале изучения, включая меня. Но на самом деле всё просто. Процесс → отдельное приложение. Если запущено 2 приложения, то это два разных процесса. Три приложения →
3 процесса. У каждого приложения свой процесс и у них нет доступа к соседнему процессу. Т.е. у каждого процесса какая-то своя область памяти, с которой он работает. Потоки → это уже внутри приложения (процесса). Т.е. анимация солнышка и звуки птиц → это как раз потоки, которые происходят внутри одного процесса (приложения). Один поток отвечает за солнышко, второй за звуки, третий за запрос данных с сервера. И потоки могут обмениваться данными с другими потоками внутри приложения. Главное запомнить: 1 процесс → 1 прил