Zaperjava:
Beleza . Mas eu poderia por exemplo chamar algum componente Swing a partir da minha thread Main e colocar alguns listeners nela .
Porem a thread continua lendo meus métodos implementados e ouvindo os listeners certo ?
Qual seria a prioridade neste caso ? Ler meus métodos ou listeners?
Acho que você está confundindo código com thread.
Thread é thread, objeto é objeto, código é código.
Uma thread nada mais é que uma linha de execução do seu programa. Duas threads, ao mesmo tempo, podem executar trechos de código da mesma classe. Os objetos ainda são os mesmos.
Então o que acontece. Quando vc pela sua Main thread adiciona um listener à um botão, esse listener é registrado num objeto do Swing. Esse objeto mantém uma lista, de todos os listeners adicionados nele.
Quando um evento é disparado, a thread do swing vai até o botão, e percorre todos os objetos listeners que estão na sua lista, chamando o método actionPerformed de cada um deles. O código do seu listener é então executado. Essa execução ocorre dentro da thread do Swing, não da thread main, independente dela originalmente ter adicionado aquele listener lá ou não.