/ 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
implements runnable
Fra : Hans Hvelplund Odbor~


Dato : 11-12-00 21:23

Jeg har en klasse som implementerer runnable. Den vil jeg gerne lave sleep
på inde fra sig selv, sådan som vist på det efterfølgende:
public void run()
{
while (okToRun)
{
if (pack!=null)
{
connection.setPackage(pack);
}
try
{
sleep((int)(Math.random() * 100));
}
catch (InterruptedException e){}
}
}

det kan jeg sefølgelig ikke da jeg bruger
public class Transmitter implements Runnable
og ikke
public class Transmitter extends Thread
kan jeg gøre det på en smart måde uden at lave om til pub.....extends
Thread ?
Jeg tænkte at hver instans af Transmitter kunne indeholde en reference til
dens Thread
men hvis der nu var en nemmere måde at finde tråden på?



 
 
Niels Thrane (11-12-2000)
Kommentar
Fra : Niels Thrane


Dato : 11-12-00 22:31

Hmmm.. Det lyder lidt mærkeligt - man kan nemlig godt kalde sleep, selvom
din klasse bare implementerer Runnable.

- hvilken fejlmeddelelse får du?

--
Mvh.
Niels Thrane



Hans Hvelplund Odbor~ (12-12-2000)
Kommentar
Fra : Hans Hvelplund Odbor~


Dato : 12-12-00 00:13

> - hvilken fejlmeddelelse får du?

Transmitter.java:45: cannot resolve symbol
symbol : method sleep (int)
location: class Transmitter
sleep((int)(Math.random() * 100));
^
1 error

som jeg skrev i et reply til mig selv kan jeg køre:
Thread.sleep((int)(Math.random() * 100))
det burde virke?




Hans Hvelplund Odbor~ (11-12-2000)
Kommentar
Fra : Hans Hvelplund Odbor~


Dato : 11-12-00 23:05

kan jeg bruge
Thread.sleep((int)(Math.random() * 100));
?




Dennis Thrysøe (12-12-2000)
Kommentar
Fra : Dennis Thrysøe


Dato : 12-12-00 08:20

Prøv med

Thread.currentThread().sleep()

-dennis


Hans Hvelplund Odborg wrote:

> Jeg har en klasse som implementerer runnable. Den vil jeg gerne lave sleep
> på inde fra sig selv, sådan som vist på det efterfølgende:
> public void run()
> {
> while (okToRun)
> {
> if (pack!=null)
> {
> connection.setPackage(pack);
> }
> try
> {
> sleep((int)(Math.random() * 100));
> }
> catch (InterruptedException e){}
> }
> }
>
> det kan jeg sefølgelig ikke da jeg bruger
> public class Transmitter implements Runnable
> og ikke
> public class Transmitter extends Thread
> kan jeg gøre det på en smart måde uden at lave om til pub.....extends
> Thread ?
> Jeg tænkte at hver instans af Transmitter kunne indeholde en reference til
> dens Thread
> men hvis der nu var en nemmere måde at finde tråden på?


Sven Nielsen (14-12-2000)
Kommentar
Fra : Sven Nielsen


Dato : 14-12-00 19:04

In article <3A35D196.6040406@netnord.dk>, dt@netnord.dk says...
>
> Prøv med
> Thread.currentThread().sleep()
> -dennis

Nej, nej, nej.

Thread.sleep(int) er en statisk metode, så der er ikke brug for en
instans. Og det har Hans vist også selv fundet ud af.

Med venlig hilsen Sven.

Ulrik Magnusson (14-12-2000)
Kommentar
Fra : Ulrik Magnusson


Dato : 14-12-00 20:15

> > Prøv med
> > Thread.currentThread().sleep()
> > -dennis
> Nej, nej, nej.
> Thread.sleep(int) er en statisk metode, så der er ikke brug for en
> instans. Og det har Hans vist også selv fundet ud af.

Er der da forskel? (udover overhead i form af et ekstra metodekald)

Ulrik Magnusson


Sven Nielsen (18-12-2000)
Kommentar
Fra : Sven Nielsen


Dato : 18-12-00 20:44

In article <3A3998A9.6530B170@yahoo.com>, ulrikm@yahoo.com says...

> Er der da forskel? (udover overhead i form af et ekstra metodekald)

Tja, læse-forståelses venligheden bliver noget forringet. Og man kan
måske forvente, at det i en kommende version af java vil give en
oversættelsesfejl. Prøv f.eks. at referere til en statisk variabel via en
instans. Det er nemlig ikke længere tilladt i 1.3 (i hvert fald ikke som
labels i case sætninger), men det var det i 1.2.

Med venlig hilsen Sven.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste