Communicating between two threads

Viewed 46428

I have a thread, A which has a list. List holds some objects. Now I want to design a mechanisim by which I can send some message to thread A.

Thread A runs in a loop (it does not wait or sleep). Some other thread, B, sends some message to thread A and thread A empties all its queues.

How can I send messages between threads?

class A extends Thread {
    List<Object> objs = something; //Init it
    void run() {
        while(true) {
            //Body which works on objects.
            //After receiving an external message, "A" should perform some action, for example, empty objects.
        }
    }
}

EDIT: Can I do it like this?

class A extends Thread {
    List<Object> objs = something; //Init it
    Boolean flag = false;

    public void setFlag(boolean value) {
        synchronized(flag) {
            this.flag = value;
        }
    }

    public void getFlag() {
        synchronized(flag) {
            return this.flag;
        }
    }

    void run() {
        while(true) {
            //Body which works on objects.
            //After receiving an external message, A should perform some action, for example, empty objects.
            if (getFlag == true)
                //Empty list
        }
    }
}
3 Answers
Related