Reputation: 363
How ClassThread
can access to variable var
from instance of Class1
that created this ClassThread
instance?
ClassThread
public class ClassThread implements Runnable {
@Override
public void run() {
}
}
Class1
public class Class1 implements Runnable{
public volatile String var;
public Class1() {
}
@Override
public void run() {
for(int i = 0; i < 5; i++){
ClassThread ct = new ClassThread();
Thread t = new Thread(ct);
t.start();
}
}
}
Main
public class Main{
public static void main(String[] args) {
for(int i = 0; i < 3; i++){
Class1 cla = new Class1();
Thread t = new Thread(cla);
t.start();
}
}
}
Upvotes: 0
Views: 62
Reputation: 8661
Take it as an argument in the constructor:
public class ClassThread implements Runnable {
private volatile String var;
public ClassThread(String var) {
this.var = var;
}
@Override
public void run() {
}
}
And in Class1
, pass it in when you construct the ClassThread
:
@Override
public void run() {
for(int i = 0; i < 5; i++){
ClassThread ct = new ClassThread(var);
Thread t = new Thread(ct);
t.start();
}
}
Upvotes: 1