inserire un ciclo che non fa niente
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 14 di 14

Discussione: inserire un ciclo che non fa niente

Cambio titolo
  1. #1
    [Nesly_R]
    Ospite

    Esclamazione inserire un ciclo che non fa niente

    raga sto facendo un programmino in java, però mi è sorto un dubbio. dato che è richiesto all'utente di inserire dei dati tramite una GUI devo fare in modo che il programma resti in attesa fin quando l'utente non clicchi su ok...per fare ciò ho deciso di inserire un ciclo while che non esegue nulla
    Codice:
    while (!listener.start()) {}
    dove il metodo start ritorna ovviamente un booleano.....il punto è questo: il programma visualizza una finestrella e finchè l'utente non clicca su ok questo ciclo while continua la sua "esecuzione" indefinitamente, quindi volevo sapere, ma un ciclo while che non esegue nulla è dispendioso per il processore? porta ad un sovrariscaldamento se eseguito per troppo tempo? io so che il ciclo while che non esegue nulla è una strategia usata da motli....ma perchè allora poco fa le ventole del mio portatile sono partite a razzo????

  2. #2
    Puppppppaaaaaaaaaaa L'avatar di Revan1985
    Registrato il
    01-06
    Località
    Solbiate Olona
    Messaggi
    1.655
    uhm...
    il while(!listener.start()) continua a far partire il listener.
    Ora, se listener contiene qualcosa di pesante, è logico che il processore "scalda"
    vedi il codice sorgente di listener e cosa fa.
    èPuò essere che sia troppo pesante per il pc
    È stato detto che la democrazia è la peggior forma di governo, eccezion fatta per tutte quelle altre forme che si sono sperimentate finora.


  3. #3
    marcio3000
    Ospite
    Oggi leggevo un tutorial di lua per psp
    ed effettivamente nel ciclo while del giochino mettevano una funzione di attesa,riporto

    If you don’t write the wait function, but use an empty loop, it will generate much CPU usage, because the wait function gives the kernel the possibility to sleep, until the next vertical retrace blank starts.

    non so se questo valga anche per programmi in cui non vi sia "grafica da videogioco"

  4. #4
    [Nesly_R]
    Ospite
    Citazione Revan1985
    uhm...
    il while(!listener.start()) continua a far partire il listener.
    Ora, se listener contiene qualcosa di pesante, è logico che il processore "scalda"
    vedi il codice sorgente di listener e cosa fa.
    èPuò essere che sia troppo pesante per il pc
    il listener fa riferimento ad un oggetto di tipo ricevitore di eventi.....dici che è pesante? cmq non ho capito in che senso continua a far partire? il listener è solo un oggetto che contiene delle informazioni
    cmq ora controllo con il taskmanager di windows

  5. #5
    marcio3000
    Ospite
    Il problema è che se volessi rallentare il ciclo potrebbe succedere che l'utente prema il tasto durante l'attesa e non durante l'ascolto e venga ignorato,no?

  6. #6
    [Nesly_R]
    Ospite
    cmq ho controllato con il taskmanager ed effettivamente la CPU va al 100%.....merda
    mi tocca trovare un'altra soluzione

  7. #7
    marcio3000
    Ospite
    Citazione [Nesly_R]
    cmq ho controllato con il taskmanager ed effettivamente la CPU va al 100%.....merda
    mi tocca trovare un'altra soluzione
    variabile booleana?,anche se poi devi usare lo stesso quella funzione..uhm..

  8. #8
    [Nesly_R]
    Ospite
    Citazione marcio3000
    variabile booleana?,anche se poi devi usare lo stesso quella funzione..uhm..
    si ora vedo come posso metterla......però a me sembra strano che la CPU arrivi al 100%....inoltre io sapevo che questo metodo è utilizzato da molti. bhà

  9. #9
    Puppppppaaaaaaaaaaa L'avatar di Revan1985
    Registrato il
    01-06
    Località
    Solbiate Olona
    Messaggi
    1.655
    la variabile booleana dovrebbe andar da dio...

    @java :

    mi sa che ho sparato uan cazzata

    se non sbaglio però, il
    while(!listener.start())
    continua a far partire più esecuzioni di start()

    se non sbaglio neh
    È stato detto che la democrazia è la peggior forma di governo, eccezion fatta per tutte quelle altre forme che si sono sperimentate finora.


  10. #10
    [Nesly_R]
    Ospite
    Citazione Revan1985
    la variabile booleana dovrebbe andar da dio...

    @java :

    mi sa che ho sparato uan cazzata

    se non sbaglio però, il
    while(!listener.start())
    continua a far partire più esecuzioni di start()

    se non sbaglio neh
    giusto, forse è proprio il richiamo indefinito di un metodo che porta a stressare il processore

  11. #11
    Puppppppaaaaaaaaaaa L'avatar di Revan1985
    Registrato il
    01-06
    Località
    Solbiate Olona
    Messaggi
    1.655


    mi ricordavo giusto allora

    (while(1))
    non dovrebbe stressare troppo

    almeno credo
    È stato detto che la democrazia è la peggior forma di governo, eccezion fatta per tutte quelle altre forme che si sono sperimentate finora.


  12. #12
    www.fabiorusconi.com L'avatar di specopsrusca
    Registrato il
    11-02
    Località
    Como
    Messaggi
    5.061
    il busy wait è cattivo

    My Hardware - My Discography - My Last.fm - Be More Shepherd

  13. #13
    StorieDallaSalaMacchine L'avatar di miniBill '90
    Registrato il
    08-05
    Località
    Bergerac
    Messaggi
    4.204
    in C# si usa Thread.Sleep(0), ci sarà qualcosa di simile in java?

    ESISTE UN UNICO AMMINISTRATORE
    Quoto-thisisgorman-
    (La mi ex-firma sta qua)

  14. #14
    N Y A N ! L'avatar di Iron84
    Registrato il
    04-05
    Località
    Ferrara (provincia)
    Messaggi
    6.131
    per esserci c'è, con la differenza che sleep va scritto con la minuscola, anche se non l'ho mai testato in questo modo, senza creare in modo esplicito un thread (anche se dovrebbe andare, ogni programma di default ha un thread associato ad esso). ah, l'argomento di sleep è il tempo in millisecondi.

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •