/ 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
sleep < 1 ms ?
Fra : Simon [2700]


Dato : 04-12-04 18:25

Hej,

kan man få en tråd/et program til at sove under 1 ms, 1 ms er jo oceaner af
tid på en hurtig processor, og jeg behøver ikke give tid til andre tråde så
meget.

Det skal bruges fordi jeg har en metode der tager omkring 300ms af køre, og
den skal køres forholdsvist ofte (hvert sekund pt, men gerne bare hele
tiden) og jeg ville helst undgå den udsulter resten af mit program imens -
så jeg tænkte hvis den kunne sove 1/20 ms hver gang den kørte (for hvert
loop i den) eller noget i den retning, så kunne de andre meget mindre
krævende dele af min applikation få tid til at bruge cpu'en der... ?

det er noget i retning af
for(int i=rækker; rækker < bane.length; rækker++)
{
for(int u=kolonner; kolonner < bane[0].length; kolonner++)
{
<tjek en masse ting>
Thread.sleep(0.00005);
}
}

på forhånd tak
-Simon




 
 
Simon [2700] (04-12-2004)
Kommentar
Fra : Simon [2700]


Dato : 04-12-04 20:16

nå, det ser ud til man ikke kan sove så lidt, andre idéer ?

http://www.javagaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=Tuning;action=d
isplay;num=1097857107

mvh.Simon



Lars Dam (04-12-2004)
Kommentar
Fra : Lars Dam


Dato : 04-12-04 23:22

On Sat, 4 Dec 2004 20:15:54 +0100
"Simon [2700]" <devnull@linux.org> wrote:

> nå, det ser ud til man ikke kan sove så lidt, andre idéer ?

Prøv evt. med Thread.yield(); på passende tidspunkter

>
> http://www.javagaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=Tuning;action=d
> isplay;num=1097857107
>
> mvh.Simon
>
>

vh. ld

Thorbjoern Ravn Ande~ (05-12-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 05-12-04 00:39

"Simon [2700]" <devnull@linux.org> writes:

> loop i den) eller noget i den retning, så kunne de andre meget mindre
> krævende dele af min applikation få tid til at bruge cpu'en der... ?

Til hvad? Er det blot for at Swing skal være responsiv?

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Simon [2700] (05-12-2004)
Kommentar
Fra : Simon [2700]


Dato : 05-12-04 00:53



> Til hvad? Er det blot for at Swing skal være responsiv?

nej det er til et spil, et pacman spil... 2 tråde der kører automatisk og
skal fange den 3 tråd der er menneske styret.
det har ikke noget med swingcomponenter at gøre lige umiddelbart, da disse
ikke skal bruges under selve spillet hvor
trådene kører.

mvh.Simon



Brian Matzon (05-12-2004)
Kommentar
Fra : Brian Matzon


Dato : 05-12-04 15:28

Simon [2700] wrote:
> nej det er til et spil, et pacman spil... 2 tråde der kører automatisk og
> skal fange den 3 tråd der er menneske styret.
> det har ikke noget med swingcomponenter at gøre lige umiddelbart, da disse
> ikke skal bruges under selve spillet hvor
> trådene kører.
Hmm Flere tråde og spil er en meget dårlig model (i de fleste
situationer). Er du sikker på at en remodellering ikke er bedre, således
du kun har en tråd?

I øvrigt, hvis du skal "fange" en tråd, er det så ikke mere wait/notify
du leder efter?

/matzon

Morten K. Hansen (05-12-2004)
Kommentar
Fra : Morten K. Hansen


Dato : 05-12-04 21:41

Den 05-12-2004 15:28, skrev Brian Matzon:
> [...] Hmm Flere tråde og spil er en meget dårlig model (i de fleste
> situationer). Er du sikker på at en remodellering ikke er bedre, således
> du kun har en tråd?
> [...]

Jeg hopper lige ind her.

Jeg sidder for sjov og laver et slags spil, noget med nogle bolde og
sårn (arkanoid-klon). Jeg har pt. én tråd pr. objekt der skal bevæge
sig, men det er ikke en god ide, eller hvad?

Jeg har haft problemer med at spillet æder vældig meget CPU kraft, kan
det skyldes at der er flere tråde?

Har du en reference til en artikel om emnet?
--
Med venlig hilsen / Best regards
Morten K. Hansen   http://hansen-winkel.dk/
Replying by mail? Change 'spam' to my first name.

Brian Matzon (06-12-2004)
Kommentar
Fra : Brian Matzon


Dato : 06-12-04 01:08

Morten K. Hansen wrote:
> Jeg har haft problemer med at spillet æder vældig meget CPU kraft, kan
> det skyldes at der er flere tråde?
> Har du en reference til en artikel om emnet?
Nope men generelt ser et spil sådan ud (MEGET simplificeret):

public class Game {
private boolean running = true;

public Game() {
// allocate stuff
}

public void initialize() {
// initialize stuff
}

public void destroy() {
// destroy stuff
}

public void execute() {
while(running) {
handleInput(); // poll keyboard, mouse or check events
updateWorld(); // update positions, check collision, ...
renderWorld(); // paint all entities, lock to frame rate
}
}

public static void main(String[] args) {
Game game = new Game();
if(game.initialize()) {
game.execute();
game.destroy();
}
}
}

dvs, main tråd laver alt, den poller input, beder objekter om flytte
sig, laver kollision osv. Til sidst rendere den verdenen som den ser ud
lige nu.

Hvis man laver spil i Java, kan jeg stærkt anbefale LWJGL: LightWeight
Java Game Library: http://lwjgl.org

/matzon

RpR (06-12-2004)
Kommentar
Fra : RpR


Dato : 06-12-04 18:32

> > Har du en reference til en artikel om emnet?
> Nope men generelt ser et spil sådan ud (MEGET simplificeret):

De lidt mere komplicerede ting som nudagens forbrugere nok er vandt til er
lidt mere multithreadede

--

- RpR
MopedGallery - More addictive than heroine
http://www.MopedGallery.dk
ICQ: 19284098
"4-strokes are full of parts, 2-strokes are full of SPEED!"
--



Lars Dam (05-12-2004)
Kommentar
Fra : Lars Dam


Dato : 05-12-04 11:06

On Sun, 5 Dec 2004 00:54:01 +0100
"Simon [2700]" <devnull@linux.org> wrote:

>
>
> > nå, det ser ud til man ikke kan sove så lidt, andre idéer ?
>
> Prøv evt. med Thread.yield(); på passende tidspunkter
>
> Hej,
>
> jeg så godt yield() i API'et, men jeg synes ikke der står noget om hvordan
> tråden startes igen,
> eller hvordan yield ellers virker....
>
> hvad jeg tror der sker:
> tråden lader andre få fat i resourcer og når de ikke skal bruge dem mere
> (cpu'en) fortsætter tråden automatisk...
> er det noget i den retning ?

Noget i den stil. Den aktuelle tråd pauser og lader andre kommer til. Udemærket
hvis du har en beregningstung opgave og vil lade andre opgaver komme til. Måske
kan du også prøve at sænke prioriteten.

> mvh.Simon
>
>


vh. ld

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

Månedens bedste
Årets bedste
Sidste års bedste