Toon posts:

[java-threads] Threads runnen niet synchroon

Pagina: 1
Acties:

Verwijderd

Topicstarter
Check m'n appletje even;

http://www.afterdune.dyndns.org/area51/java/Vliegveld.htm

Het is de bedoeling dat de vliegtuigjes tegelijk runnen. Hier is de sourcecode;

http://www.afterdune.dyndns.org/area51/java/Vliegveld.java
http://www.afterdune.dyndns.org/area51/java/Hangar.java

Als ik de boel in tekstmodus maak, wordt de functie run() automatisch aangeroepen wanneer de thread start. (vliegtuigx.start() dus). Maar binnen m'n applet is dat niet zo. Hoe kan dit?

Let wel; Het is nog lang niet af, maar ik wil het voor elkaar krijgen dat de threads tegelijk runnen, dus dat je de statussen van de vliegtuigen tegelijk ziet en niet na elkaar.

Thanx.

Verwijderd

als je thread extend hoef je geen runnable te implementen...

en verder hoeft die start() echt niet zelf gedefinierd te worden...

Verwijderd

Topicstarter
Ik weet dat start() niet gedefiniëerd te worden, maar zo runt het scriptje tenminste. Dit is even tijdelijk.

En dat runnable was een probeersel.

Verwijderd

je roept nu met je eigen thread die run aan, oftewel er wordt helemaal geen extra thread aangemaakt...

start roept wel degelijk run aan als je 'm nie override...

  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

vervang dit in Hangar.java
code:
1
2
3
public void start()  {
    run();
}

eens met dit
code:
1
2
3
4
5
private Thread t;
public void start() {
    t=new Thread(this);
    t.start();
}

edit en ook zou ik dit
code:
1
Thread.sleep(delayTime);

vervangen met
code:
1
Thread.currentThread().sleep(delayTime);

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Als je 2 dingen synchroon wilt laten lopen, waarom gebruik je dan 2 threads?? Ik zou gewoon 1 thread maken waarin je zo gewoon achter elkaar aanroept. Ik zou zelf gebruik maken van een timer class (alhoewel dit wel swing is) en dan heb je meteen geen concurrency problemen (die jij dus nu wel hebt).
Pagina: 1