I have a real simple solution to this.But I really wonder whether I have understood the question correctly.
My version goes like this :
1> Make a bean class which would have name and address as attributes.
2> Make another class (call it SharedData.java )which would have a syncronized method for getting a bean of type mentioned above.And after it gives out a bean it should point to the next bean.It is very simple to implement.You can have a arraylist as holder for the beans.
3> Make a thread that takes a object of above type (in constructor)and on run method you can get a object by quering the object reference that has been passed to this class in constructor and print name and address from that bean and ask for another bean and repeat the process.
4> Now write a class with main method which would first create an instance of SharedData Class and the create three threads with the same instance of the shared data in constructor and start all the threads.
That is all..