Allora, run è un metodo noto, utilizzabile in quanto le classi B e C estendono Thread, del resto si evince poichè in classe A faccio objB.start() e objC.start() che vanno a richiamare di default il metodo run(). Cerco comunque di essere più chiaro:

codice:
Classe A{
            B objB= new obj B;
            C objC= new obj C;
            objB.start();
            objC.start();
            }
codice:
Classe B extends Thread{
          String sito;
          public run() throws IOException {
          Process p = Runtime.getRuntime().exec("ping ".concat(sito));
          BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
          }
La classe C (anch'essa estende Thread) dovrebbe prendere il buffer in, di modo che la run di C possa stampare in un'apposita textarea il suo contenuto ovvero il ping.
Il problema è che sto cercando di gestire in maniera sincrona il ping e la stampa in una textarea per questo faccio uso dei thread, in particolare il buffer in viene aggiornato continuamente e la stampa dovrebbe essere sicronizzata con questo ping continuo, dovrebbe poter avere accesso continuamente all'oggetto in ma senza per questo effettuare ogni volta la stampa dall'inizio.