Dúvidas sobre threads

Estou desenvolvendo uma aplicação que recebe dados da porta paralela e processá-los. Descobri que pra isso preciso usar threads. Como fazer pra receber os dados e eviar num socket em segundo plano e processá-los ao mesmo tempo? Como compartilhar um objeto que armazena os valores que eu peguei da porta paralela? Alguém sabe como proceder? Tentei fazer com que o método run retornasse algum valor mas ele tem que ser void.

voce deve fazer uma implementacao da classe Runnable, passar a mesma instancia dessa Classe para duas Thread diferentes…

Assim as duas thread trabalham em cima do mesmo objeto, consequentemente em cima dos mesmos metos privados.

voce deve montar a classe de forma sincronizada.

Um dica, a classe que vai receber os dados lidos de outra thread poderia chamar o metod wait quando nao haver mais dados a ser lidos, quando a thread que le os dados tiver valores, ela chama ao metodo notifyAll() para acordar a thread de leitura.