Timer Dokumentierung
Gestern habe ich erst mal Timer Programm geschrieben, aber glücklich habe ich einen relativen Problem getroffen ----Threads confict!!
Ich habe nie mal Thread Programm Operation System Programm geschrieben, deswegen möchte ich heute darauf dokumentieren
Beschreibung
Class A
{
private Timer t;
private TimerTask tT;
private int timelong;
private int m_Threshold;
public A()
{
t=new timer();
timelong=0;
m_Threshold= 1;
class exTimerTask extends TimerTask {
public void run() {
while (true) {
timelong = System.currentTimeMillis()
- scheduledExecutionTime();
if (timelong > m_Threshold * 1000 * 60)
break;
}
t.cancel();
}
}
tT = new exTimerTask();
t.schedule(tT, 0);
}
public boolean a()
{
if(timelong>m_Threshold*1000*60)
return true;
else
return false;
}
}
Class B
{
public Class B()
{
A aT=new A()
Thread tK= new Thread(A);
while(!aT.a())
{
tT.wait();
}
}
}
wir können sehen, es gibt zwei Threads in beiden Klassen, eine ist tT in Klass A, andere ist tk in Klass B, aber B hat ein Instanz (aT) von A, immer braucht aT.a() abrufen, um timelong in Klass A zu überprüfen. aber timelong ist ein Varianz in Thread tK. Jetzt können wir anweisen, dass wenn B ein Instanz aT hätte, aT ruft ein Thread ab, B ruft noch Thread tK, tK braucht Resource timelong, die immer in Thread tT läuft. Ich weiß nicht genau, ob es Konflikt ist, aber ich bin Sicher, dass es Fehler sein muss.
练德语啊?:)
Kein chinese Input jetzt