Al tener más de un hilo, obviamente consume más recursos mientras estos se ejecutan, porque si bien no son 2 procesos, los hilos se ejecutan "a la misma vez" y por lo tanto cada uno de ellos solicitará al sistema los recursos que necesita...
Lo de que vaya más lento no lo entiendo del todo...
Los listeners no necesitan hilos, si estás creando tus propios Events/Listeners te recomiendo leer un poco más (si buscas en google encontrarás abundante info al respecto), pero básicamente tendrás una Interface para el Evento otra para el Listener y luego en la clase que lanzará los eventos tendrás una lista de quiénes están escuchando y les avisarás a cada uno... algo así:
Código Java:
Ver originalinterface HelloListener {
public void someoneSaidHello();
}
class Initiater {
List<HelloListener> listeners = new ArrayList<HelloListener>();
public void addListener(HelloListener toAdd) {
listeners.add(toAdd);
}
public void sayHello() {
System.
out.
println("Hello!!");
// Notify everybody that may be interested.
for (HelloListener hl : listeners)
hl.someoneSaidHello();
}
}
class Responder implements HelloListener {
@Override
public void someoneSaidHello() {
System.
out.
println("Hello there..."); }
}