How to access a method from another running thread in java

Wow why do you make things to much complex?! this is not as hard as you think (killing a dragon in a dark castle!)

okay all you need to do is passing the threadA references to threadB! just this. and let me say that when you call a method from thread b, so it runs by thread b, not the class has been hosted.

class ThreadA implements Runnable {
    public void run() {
        //do something
    }

    public void setSomething() { }
}

class ThreadB implements Runnable {
    private ThreadA aref;

    public ThreadB(ThreadA ref) { aref = ref; }

    public void run() {
        aref.setSomething(); // Calling setSomething() with this thread! (not thread a)
    }
}

class Foo {
    public static void main(String...arg) {
        ThreadA a = new ThreadA();
        new Thread(a).start();

        ThreadB b = new ThreadB(a);
        new Thread(b).start();
    }
}

and here a simple threadtutorial