Vielleicht bin ich zu blöd, aber ich verstehe immer noch nicht was du damit bewirken willst. Und die If abfrage dient ....? Willst du in Abhängigkeit von Werten verschiedene Threads starten oder was soll das ganze ? Du sagst die Threads sollen parallel laufen und bearbeiten verschiedene Streams. Wieso brauchst du dann irgendwelche if-Abfrage im run() ?
Oder willst du einfach nicht für Threads die verschiedene Aufgaben haben, separate Klassen machen ? Das solltest du aber. Wenn ein Thread schreibt, und der andere ließt, dann macht man dafür 2 Separate Klassen, die vom Thread oder Runnable erben und in der run() unterschiedlichen Code haben und nicht nur Eine Klasse, in der die Aufgaben mit If's zu unterscheiden sind. Wenn es bei den Threads, nur 2-3 Zeilen Code anders sind und der Rest gleich, dann kann man so etwas machen.
Und btw. ist threadstarter() und run() in der gleichen Klasse ? th1 und th2 müssen irgendwelche Threads sein, aber woher sollen die von deinen localen int-Werten überhaupt bescheid wissen ? Du musst die schon als parameter entweder dem Konstruktor oder über eine set-Methode übergeben, sonnst wissen die nichts von den ints.
EDIT: Genau so etwas was der Marco geschrieben hat meinte ich. Du brauchst separate Klassen für die Threads, wenn deren Aufgaben ganz unterschiedlich sind.