Ich bin neu für Java, ich möchte Thread kontinuierlich vor dem laufen, ich möchte überprüfen, ob der gleiche Thread bereits bedeutet, zu stoppen und wieder zu laufen. Bitte, bitte hilf mir!Wie Thread kontinuierlich in Java laufen
Hier mein Code:
public class TripTrackService {
private static class TripThread implements Runnable {
private final Thread t;
TripThread() {
t = new Thread();
t.setName("hello");
}
public void start() {
if(!t.isAlive())
{
t.start();
System.out.println(t.getName()+ " Running....."+t.isAlive());
Thread th = getThreadByName("hello");
if(th!=null)
System.out.println(th.getName()+"Already Running....."+th.isAlive());
else
System.out.println("No thread Found");
}
else{
System.out.println("Already Running.....");
Thread th = getThreadByName("test");
if(th!=null){
System.out.println(th.getName()+"Else Already Running....."+th.isAlive());
th.interrupt();
}
else{
System.out.println("No thread Found");
}
}
}
public void stop() {
if(t.isAlive())
t.stop();
}
public void run() {
if(!t.isAlive())
t.run();
}
public Thread getThreadByName(String threadName){
Thread _tmp = null;
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Thread[] array = threadSet.toArray(new Thread[threadSet.size()]);
for(int i=0;i<array.length;i++){
// System.out.println(array[i].getName());
if(array[i].getName().equals(threadName)){
_tmp=array[i];
}
}
return _tmp;
}
}
public static void main(String args[]) {
TripThread myThread = new TripThread();
myThread.start();
}
}
Vielen Dank im Voraus .....
Also, was ist das Problem mit Ihrem aktuellen Code? –
Sein nicht kontinuierlich abgetan Drucken ... – hikoo
sollten Sie Ihre Logik in der 'run()' Methode und starten Sie den Thread schreiben 'durch den Aufruf' Thread.start(), die die 'run()' Methode asynchron rufen. Trotzdem verstehe ich nicht, was Sie hier versuchen wollen. –