Potrzebuję zdefiniować wspólną zmienną w metodzie main() klasy głównej. Potrzebuję dwóch wątków, aby móc uzyskać dostęp do tej wspólnej zmiennej. Tworzę wątki poprzez implementację interfejsu Runnable i implementację metody abstract run() interfejsu. Jak odnieść się do wspólnej zmiennej zdefiniowanej w metodzie main() klasy Main z metody run() zdefiniowanej w mojej klasie, która implementuje interfejs Runnable? Oczywiście zwyczajne wywoływanie ich po imieniu nie działa - ponieważ pojawiają się one w moim zasięgu Runnable.uzyskiwanie dostępu do zmiennej współdzielonej z klasy Runnable
EDIT - Przepraszam, jest tu prosty przykład
public Class DoThread implements Runnable {
public void run(){
sharedVar += 1
}
}
w osobnym pliku .class:
public Class Main {
public static void main(String[] args) {
int sharedVar = 0;
Thread t1 = new Thread(new DoThread());
Thread t2 = new Thread(new DoThread());
t1.start();
t2.start();
t1.join();
t2.join();
}
}
więc powinienem być tworzenia obiektu do przechowywania udostępnionego var i następnie przekazywanie tego obiektu do konstruktorów DoThread() podczas tworzenia wątków? Czasem zdarza mi się pomieszać między kiedy java przechodzi przez ref lub przechodzi przez var, więc jeśli zrobię to w ten sposób, zmieni się do wspólnego var przez t1 być postrzegane przez t2?
Czy możesz opublikować swój kod? – SJuan76
Zawsze staraj się opublikować [SSCCE] (http://sscce.org/). –