Avatar billede foo_baa Nybegynder
05. september 2002 - 14:43 Der er 13 kommentarer og
1 løsning

2 tråde i 1 java fil

Kan man ikke lave 2 tråde i 1 java fil, hvordan gør man det så med run metoden, jeg skal jo også bruge to af dem ????? eller hvad ?? hvis jeg vil have den ene tråd til at sove i 10 sek og den anden i 1 min ?
Avatar billede disky Nybegynder
05. september 2002 - 14:52 #1
er det to forskellige klasser der skal køre som tråde, eller er det 2 instancer af samme klasse ?

I først tilfælde, smid 2 klasser i samme fil, i andet tilfælde lav:
MinThreadKlasse t1=new MinThreadKlasse();
t1.start();
MinThreadKlasse t2=new MinThreadKlasse();
t2.start();
Avatar billede foo_baa Nybegynder
05. september 2002 - 15:00 #2
jeg har 1 instans af 1 klasse, hvor der skal være 2 tråde i
Avatar billede foo_baa Nybegynder
05. september 2002 - 15:04 #3
eller kan jeg have en anden klasse hvor jeg implements runnable og har en run metode, og i den første klasse så
Klasse1 temp = new Klasse1();
temp1.start();
for det virker heller ikke
Avatar billede disky Nybegynder
05. september 2002 - 15:33 #4
Hvis det ikke virker er det noget galt med din 'Klasse1'.

jeg har til tider, 10 tråde af samme klasse kørende uden de fjerneste problemmer.
Avatar billede foo_baa Nybegynder
05. september 2002 - 15:35 #5
ok jeg kommer lige med et eksempel på hvordan det er gjort

klasse1 implements Runnable

thread traad1 = new Thread();
traad1.start()
klasse2 temp = new Klasse2();
temp.start();


public void run(){


}


klasse2 implements Runnable

Thread traad2 = new Thread();

public void run(){


}

eller ??? hvordan skal det gøres ?++
Avatar billede disky Nybegynder
05. september 2002 - 15:43 #6
I din trådklasse definerer du tråden du instantierer den ikke nødvendigvis, flyt det over i den klasse der skal bruge tråden.

hvis din run metode bare er:

public void run()
{
}

Så gennemløbes den kun 1 gang, og tråden er derefter stoppet.

Lav derfor:

boolean stop=false;
public void run()
{
while(!stop)
{
}
}

Så sætter du stop=true; så stopper tråden, p.s. husk at brug syncronized metoder til dette osv.
Avatar billede foo_baa Nybegynder
05. september 2002 - 16:19 #7
jaja alt det ved jeg,
jeg har en traad1.sleep(10000)
Og jeg skal bruge en tråd i hver klasse, dvs. 2 tråde
Avatar billede disky Nybegynder
06. september 2002 - 14:39 #8
Jamen hvis du ved hvordan man gør, hvad er dit problem så ?
Avatar billede foo_baa Nybegynder
06. september 2002 - 15:33 #9
at det ikke virker :)
og jeg ved bare det du sagde med den while for at sætte en forsættelses betingelse på run metoden,
Avatar billede disky Nybegynder
06. september 2002 - 16:00 #10
Beskriv dit problem lidt mere detaljeret, jeg mangler stadigvæk svar på:
er det to forskellige klasser der skal køre som tråde, eller er det 2 instancer af samme klasse ?
Avatar billede foo_baa Nybegynder
06. september 2002 - 16:37 #11
ja det kan ske på 2 måder, enten ved at jeg har 2 tråde i samme instans af 1 klasse eller ved at jeg har 2 forskellige klasser
Avatar billede disky Nybegynder
06. september 2002 - 16:40 #12
Ja det ved jeg godt, det er ligesom mig der spurgte dig hvilken af disse to der var din situation.

Hvis du ikke vil give mig den information jeg har brug for, kan jeg ikke hjælpe dig.
Avatar billede foo_baa Nybegynder
06. september 2002 - 18:26 #13
jamen som også sagt før, så er det lige meget hvilke at de to situationer jeg bruger, bare det kommer til at virke
Avatar billede disky Nybegynder
06. september 2002 - 19:24 #14
post den kode den korrekte kode som du bruger og som giver problemmet, og beskriv præcist problemmets natur.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester