In einem Thread läuft exakt die Funktion, die Du bei der Erzeugung des Threads angegeben hast. Alles was innerhalb dieser Funktion passiert (andere Funktionen aufrufen, Objekte erzeugen/löschen, ...) läuft im selben Threadrahmen.

Wenn Thread B auf erzeugte Objekte von Thread A zugreifen will müssen die zumindest die Adressen der Objekte kennen. Wenn Thread A Methoden eines Objektes aufruft, das in Thread B erzeugt wurde, laufen die Methoden dennoch im Rahmen von Thread A.

Ich hoffe, das war einigermaßen verständlich erklärt.