Простейший случай
AsyncTask
doInBackground - выполняется на одном потоке
onPostExecute - выполняется на потоке который запускал AsyncTask
2) Возможно вызвать метод из другого класса после завершения потока
Возможно, у тебя ошибочное мнение, что разные классы выполняются на разных потоках, или весь класс выполняется только на одном потоке. Это не так. Методы класса могут выполняться на разных потоках.
Так же и изменение переменных технически не запрещено изменять из разных потоков.
Единственная особенность Android, что вьюхи можно менять только из UI- потока. Для этого и придуман AsyncTask (в том числе).
doInBackground - выполняется на новом потоке
onPostExecute - выполняется на UI
Также применяют как java - потоки (Thread, Executers, Concurrent ...), так и Handle, AsyncTask, IntentService и проч.
Но для знакомства лучше начать с AsynkTask. Он нормально подходит для простых задач.