Guten Abend,
ich möchte es in Java realsieren, dass sich zwei Threads abwechseln und unterbrechen. Nach der Unterbrechnung soll dann immer der andere Thread einen Teil seiner Arbeit tun, nur um wieder unterbrochen zu werden. Meine Idee füge ich unten ein.
Bei Fragen zum Code stehe ich natürlich bereit. Vielleicht hat jemand eine Idee, wie ich die Threads abwechseln kann.
Nicht erschrecken, falls es unüberischtlich aussehen sollte, es ist zweimal die gleiche Methode, Unterschied sind nur Groß- bzw. Kleinbuchstaben.
Leider klappt es nicht mehr, seitdem ich die Isinterrupted Methode benutze. Vorher wechseln sich die Threads ab, wie sie gerade Lust haben.
Bis Dann.
MAIAarts.
ich möchte es in Java realsieren, dass sich zwei Threads abwechseln und unterbrechen. Nach der Unterbrechnung soll dann immer der andere Thread einen Teil seiner Arbeit tun, nur um wieder unterbrochen zu werden. Meine Idee füge ich unten ein.
Bei Fragen zum Code stehe ich natürlich bereit. Vielleicht hat jemand eine Idee, wie ich die Threads abwechseln kann.
Code:
public class Hauptt
{
public static void main(String[] args)
{
//-- Thread beides in einer While-Schleife --
ABCThread ABC1 = new ABCThread(true);
ABCThread ABC2 = new ABCThread(false);
new Thread(ABC1).start();
new Thread(ABC2).start();
}
}
Code:
public class ABCThread
implements Runnable
{
private char kzeichen = 'a';
private char gzeichen = 'A';
public boolean grossklein;
//Variable für Isinterrupted
private static boolean isDran=false;
public ABCThread(boolean grossklein)
{
this.grossklein=grossklein;
}
public void run()
{
if(grossklein)
while (!Thread.currentThread().isInterrupted() )
{
for (int i= 0;i<26;i++)
{
try
{
System.out.print(gzeichen);
gzeichen++;
Thread.sleep(100);
Thread.yield();
Thread.currentThread().interrupt();
}
catch (InterruptedException o){}
}
}
if(!grossklein)
while (!Thread.currentThread().isInterrupted() )
{
for (int j= 0;j<26;j++)
{
try
{
System.out.print(kzeichen);
kzeichen++;
Thread.sleep(100);
System.out.print(" ");
Thread.yield();
Thread.currentThread().interrupt();
}
catch (InterruptedException o){}
}
}
}
}
Nicht erschrecken, falls es unüberischtlich aussehen sollte, es ist zweimal die gleiche Methode, Unterschied sind nur Groß- bzw. Kleinbuchstaben.
Leider klappt es nicht mehr, seitdem ich die Isinterrupted Methode benutze. Vorher wechseln sich die Threads ab, wie sie gerade Lust haben.
Bis Dann.
MAIAarts.