Diferença entre android runOnUiThread e código simples em java

Eu sou um iniciante no desenvolvimento de aplicativos para Android. Estou trabalhando com threads no android.runOnUiThread qual código de execução na interface do usuário principal (se eu não estiver errado? eu acho.).

Minha pergunta é qual é a diferença entre o código normal na interface principal e o código dentrorunOnIUThread.

Exemplo 1

class A
{
getDataFromServer(foo);//Code on mainUI
}

Exemplo: 2

getActivity.runOnUiThread(new Runnable(){
@Override
public void run(){
getDataFromServer(foo);
}
});

Qual é a diferença nos dois exemplos? Por favor, ajude-me. Sua resposta será um novo aprendizado para mim.

questionAnswers(3)

yourAnswerToTheQuestion