/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Tråd problem
Fra : John Doe


Dato : 19-05-03 19:30

Hej,

Jeg har følgende problem. Jeg starter en række tråde fra min klasse - la
os kalde den test - og vil så gerne ha tråden til arbejde med lidt data
for så at sætte en variabel i test klassen. Men hvordan gør jeg lige det.
Jeg har ikke adgang til variablen direkte fra min tråd og tråden kan vel
ikke returnere noget

/Dennis

 
 
Jonas Zimling (19-05-2003)
Kommentar
Fra : Jonas Zimling


Dato : 19-05-03 19:46

Hej Dennis

Prøv med noget i stil med:
-------------
public class Test{
private int variabel;

public Test(){
(new TestThread(this)),start();

}

public static void main(String args[]){
new Test();
}

public void setVarable(int pVariable){
this.variabel = pVariable;
}



}


public class TestThread extends Thread{
private Test mTest = null;


public TestThread(Test pTest){
this.mTest=pTest;
}

public void run(){
int i=0;
try{
//beregn i.
Thread.sleep(5000);
} catch (InterruptedException e){
e.printStackTrace();
}
mTest.setVarable(i);

}
}
-----------
Jeg har hverken testet eller kompileret det, så der kan være fejl - men
princippet bør være til at forstå.

Mvh
Jonas



"John Doe" <himmelhunden_99@yahoo.com> skrev i en meddelelse
news:pan.2003.05.19.18.29.47.672359@yahoo.com...
> Hej,
>
> Jeg har følgende problem. Jeg starter en række tråde fra min klasse - la
> os kalde den test - og vil så gerne ha tråden til arbejde med lidt data
> for så at sætte en variabel i test klassen. Men hvordan gør jeg lige det.
> Jeg har ikke adgang til variablen direkte fra min tråd og tråden kan vel
> ikke returnere noget
>
> /Dennis



John Doe (19-05-2003)
Kommentar
Fra : John Doe


Dato : 19-05-03 20:01

On Mon, 19 May 2003 20:46:24 +0200, Jonas Zimling wrote:

> Hej Dennis
>
> Prøv med noget i stil med:

*snip*

> Jeg har hverken testet eller kompileret det, så der kan være fejl - men
> princippet bør være til at forstå.

åååh så simpelt men alligevel så smukt .. jeg takker mange gange

/Dennis


Rico Wind (19-05-2003)
Kommentar
Fra : Rico Wind


Dato : 19-05-03 20:05


"John Doe" <himmelhunden_99@yahoo.com> skrev i en meddelelse
> Hej,
>
> Jeg har følgende problem. Jeg starter en række tråde fra min klasse - la
> os kalde den test - og vil så gerne ha tråden til arbejde med lidt data
> for så at sætte en variabel i test klassen. Men hvordan gør jeg lige det.
> Jeg har ikke adgang til variablen direkte fra min tråd og tråden kan vel
> ikke returnere noget
>
> /Dennis

Du kunne gøre som vist herunder, eller du kan evt oprette et objekt du
giver med.
Hvis du opretter et objekt som du giver med, kan du ændre på dette objekt i
tråden, og
det kan du så aflæse i din Test klasse.

public class Test{

private static int minVar = 10;

public static void main(String[] args){
Test t = new Test();

System.out.println("inden tråden startes er minVar " + minVar);
MinThread t1 = new MinThread(t);
t1.start();
try{t1.join();}catch(InterruptedException e){}
System.out.println("efter tråden er kørt er minVar: " + minVar);


}

public void setMinVar(int minVar){
this.minVar = minVar;
}

}

class MinThread extends Thread{

private Test test;

public MinThread(Test test){
this.test = test;
}
public synchronized void run(){
System.out.println("inden variabel sat");
test.setMinVar(11);
System.out.println("efter variabel sat");
}


}




Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408193
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste