chencc77
asked on
Threads in vector
I have 3 classes.
//Task.class as follow
import java.util.*;
import java.io.*;
import java.text.*;
public class Task extends Thread {
boolean live = true;
long sleepInterval;
int cc = 0;
public static Task Instance;
public Task() {
Instance = this;
sleepInterval = 5000;
start();
}
public void run() {
while (live) {
try {
sleep(sleepInterval);
} catch (Exception e) {
System.out.println("Interr upted sleep:loadsubmit " + e);
}
}
}
public void setSleepInterval()
{
this.interrupt();
sleepInterval = 10000;
}
public void printText() {
System.out.println("thread is alive " + this.isAlive());
}
}
//END
2. UpdateTask.class will extends Thread and call Task.Instance.setSleepInte rval to update the sleepInterval for specific Task.
2. Main.class contain a vector to add a numbers of Task.class.
My answer is how can i refer UpdateTask to the specific Task.Instance because every Task.class has the same Instance name (Task).
Thanks alot.
//Task.class as follow
import java.util.*;
import java.io.*;
import java.text.*;
public class Task extends Thread {
boolean live = true;
long sleepInterval;
int cc = 0;
public static Task Instance;
public Task() {
Instance = this;
sleepInterval = 5000;
start();
}
public void run() {
while (live) {
try {
sleep(sleepInterval);
} catch (Exception e) {
System.out.println("Interr
}
}
}
public void setSleepInterval()
{
this.interrupt();
sleepInterval = 10000;
}
public void printText() {
System.out.println("thread
}
}
//END
2. UpdateTask.class will extends Thread and call Task.Instance.setSleepInte
2. Main.class contain a vector to add a numbers of Task.class.
My answer is how can i refer UpdateTask to the specific Task.Instance because every Task.class has the same Instance name (Task).
Thanks alot.
ASKER
Thanks Venci75, i am trying on it before close this question. Thanks again for ur help.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
private static Vector instances = new Vector();
public Task() {
instances.addElement(this)
sleepInterval = 5000;
start();
}
public static Task getInstance(int i) {
return (Task) instances.get(i);
}
...
now you can use :
Task.getInstance(2).setSle