ďťż
 
sleep ďťż
 
sleep
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

sleep



kamil - 11-12-2005 17:34
sleep
  Jak można na określony czas zatrzymać aplikację.
W języku c można zrobić to funkcją 'sleep(jakaś liczba)';
Jak to można zrobić w javie.Proszę o pomoc.

Pozdrawiam:-)

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Kowalski Tomek - 11-12-2005 17:34

  w javie tez jest metoda sleep

tylko ze sleep usypia watki, musisz stworzyc watek ktory dziedziczy po
klasie Thread lub mozna dana klase zaimplementowac interfejsem Runnable,
w metodzie sleep(czas) czas podaje sie w milisekundach. Dodatkowo metoda
sleep musi byc w konstrukcji try - catch bo moze wystapic przerwanie snu:)
"InterruptedException".




Tomek - 11-12-2005 17:34

  Kowalski Tomek wrote:
> w javie tez jest metoda sleep
>
> tylko ze sleep usypia watki, musisz stworzyc watek ktory dziedziczy po
> klasie Thread lub mozna dana klase zaimplementowac interfejsem
> Runnable, w metodzie sleep(czas) czas podaje sie w milisekundach.
> Dodatkowo metoda sleep musi byc w konstrukcji try - catch bo moze
> wystapic przerwanie snu:) "InterruptedException".
>
>
>
np tak:

static void waitSomeTime( long a_miliSec )
{
// musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym momencie
// i zglosic wyjatek - stad mala komplikacja tej metody

Date date1 = new Date();

for(;;)
{
Date date2 = new Date();

long diff = (date2.getTime() - date1.getTime());

if( diff < a_miliSec )
{
try
{
Thread.sleep( a_miliSec - diff );
}
catch( InterruptedException e) // sleep moze sie
wybudzic przed czasem i rzuca wtedy wyjatkiem
{
}
}
else
{
break;
}
}
}




Zbyszek Malec - 11-12-2005 17:34

  Kowalski Tomek wrote (tak! stara dobra wrotka!):

> tylko ze sleep usypia watki,

No to chyba dość standardowe zachowanie, nieprawdaż?

> musisz stworzyc watek ktory dziedziczy po
> klasie Thread

Lepiej tego nie robić.

> lub mozna dana klase zaimplementowac interfejsem Runnable,

Dużo lepiej.

Tyle że nie trzeba interfejsu Runnable do wywołania sleepa. Można wywołać
tą metodę z kontekstu statycznego (bo jest statyczna) dla bieżącego wątku.
Tak jak to zrobił Tomek odpowiadający na twojego posta.

Pozdrawiam.
--
Zbigniew Malec Ustronie:104 gg:2756100





a1 - 13-12-2005 09:36

  Tomek wrote:

> // musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym momencie
> // i zglosic wyjatek - stad mala komplikacja tej metody

> try
> {
> Thread.sleep( a_miliSec - diff );
> }
> catch( InterruptedException e) // sleep moze sie
> wybudzic przed czasem i rzuca wtedy wyjatkiem

Moze sie sam wybudzic... i sam sie tez zepsuc moze... wogole to te
komputery niedobre sa tak sie same z siebie psuja...

Czasem warto przeczytac dokumentacjie tam dosyc dokladnie jest
wytlumaczone kiedy i skad sie bierze InterruptedException.

--

a1 (Bartek Janusz) mailto: arcone1 [at] invalid.gmail [dot] com




Tomek - 13-12-2005 09:36

  a1 wrote:
> Tomek wrote:
>
>> // musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym
>> momencie
>> // i zglosic wyjatek - stad mala komplikacja tej metody
>
>
>> try
>> {
>> Thread.sleep( a_miliSec - diff );
>> }
>> catch( InterruptedException e) // sleep moze sie
>> wybudzic przed czasem i rzuca wtedy wyjatkiem
>
>
>
> Moze sie sam wybudzic... i sam sie tez zepsuc moze... wogole to te
> komputery niedobre sa tak sie same z siebie psuja...
>
> Czasem warto przeczytac dokumentacjie tam dosyc dokladnie jest
> wytlumaczone kiedy i skad sie bierze InterruptedException.
>

"Thrown when a thread is waiting, sleeping, or otherwise paused for a
long time and another thread interrupts it using the interrupt method in
class Thread."

I co z tego wynika? Ze mam nie obslugiwac InterruptedException?




Tomek - 13-12-2005 09:36

  Tomek wrote:
> a1 wrote:
>
>> Tomek wrote:
>>
>>> // musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym
>>> momencie
>>> // i zglosic wyjatek - stad mala komplikacja tej metody
>>
>>
>>
>>> try
>>> {
>>> Thread.sleep( a_miliSec - diff );
>>> }
>>> catch( InterruptedException e) // sleep moze sie
>>> wybudzic przed czasem i rzuca wtedy wyjatkiem
>>
>>
>>
>>
>> Moze sie sam wybudzic... i sam sie tez zepsuc moze... wogole to te
>> komputery niedobre sa tak sie same z siebie psuja...
>>
>> Czasem warto przeczytac dokumentacjie tam dosyc dokladnie jest
>> wytlumaczone kiedy i skad sie bierze InterruptedException.
>>
>
>
> "Thrown when a thread is waiting, sleeping, or otherwise paused for a
> long time and another thread interrupts it using the interrupt method in
> class Thread."
>
> I co z tego wynika? Ze mam nie obslugiwac InterruptedException?
>

Od razu uprzedze ewentualna odpowiedz - nie wnikalem w to kiedy
interrupt bedzie wywolane, bo pisze jednowatkowy programik,
wiec taka konstrukcja jest moim zdaniem poprawna i w razie jakiegos
systemowego(nie wiem jakiego bo nie znam Javy na tyle) wybudzenia
prawidlowo odmierzy czas.




Tomek - 13-12-2005 09:36

  Tomek wrote:
> Tomek wrote:
>
>> a1 wrote:
>>
>>> Tomek wrote:
>>>
>>>> // musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym
>>>> momencie
>>>> // i zglosic wyjatek - stad mala komplikacja tej metody
>>>
>>>
>>>
>>>
>>>> try
>>>> {
>>>> Thread.sleep( a_miliSec - diff );
>>>> }
>>>> catch( InterruptedException e) // sleep moze sie
>>>> wybudzic przed czasem i rzuca wtedy wyjatkiem
>>>
>>>
>>>
>>>
>>>
>>> Moze sie sam wybudzic... i sam sie tez zepsuc moze... wogole to te
>>> komputery niedobre sa tak sie same z siebie psuja...
>>>
>>> Czasem warto przeczytac dokumentacjie tam dosyc dokladnie jest
>>> wytlumaczone kiedy i skad sie bierze InterruptedException.
>>>
>>
>>
>> "Thrown when a thread is waiting, sleeping, or otherwise paused for a
>> long time and another thread interrupts it using the interrupt method
>> in class Thread."
>>
>> I co z tego wynika? Ze mam nie obslugiwac InterruptedException?
>>
>
> Od razu uprzedze ewentualna odpowiedz - nie wnikalem w to kiedy
> interrupt bedzie wywolane, bo pisze jednowatkowy programik,
> wiec taka konstrukcja jest moim zdaniem poprawna i w razie jakiegos
> systemowego(nie wiem jakiego bo nie znam Javy na tyle) wybudzenia
> prawidlowo odmierzy czas.

Ale jesli zrobilem bledne zalozenie to czekam oczywiscie na korekte :D




a1 - 13-12-2005 09:36

  Tomek wrote:
> Tomek wrote:
>
>> a1 wrote:
>>
>>> Tomek wrote:
>>>
>>>> // musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym
>>>> momencie
>>>> // i zglosic wyjatek - stad mala komplikacja tej metody
>>>
>>>
>>>
>>>
>>>> try
>>>> {
>>>> Thread.sleep( a_miliSec - diff );
>>>> }
>>>> catch( InterruptedException e) // sleep moze sie
>>>> wybudzic przed czasem i rzuca wtedy wyjatkiem
>>>
>>>
>>>
>>>
>>>
>>> Moze sie sam wybudzic... i sam sie tez zepsuc moze... wogole to te
>>> komputery niedobre sa tak sie same z siebie psuja...
>>>
>>> Czasem warto przeczytac dokumentacjie tam dosyc dokladnie jest
>>> wytlumaczone kiedy i skad sie bierze InterruptedException.
>>>
>>
>>
>> "Thrown when a thread is waiting, sleeping, or otherwise paused for a
>> long time and another thread interrupts it using the interrupt method
>> in class Thread."
>>
>> I co z tego wynika? Ze mam nie obslugiwac InterruptedException?
>>
>
> Od razu uprzedze ewentualna odpowiedz - nie wnikalem w to kiedy
> interrupt bedzie wywolane, bo pisze jednowatkowy programik,
> wiec taka konstrukcja jest moim zdaniem poprawna i w razie jakiegos
> systemowego(nie wiem jakiego bo nie znam Javy na tyle) wybudzenia
> prawidlowo odmierzy czas.

Interrupt bedzie wolane wtedy jak je zawolasz, a taka konstrukcja
efektywnie uniemozliwia stosowania mechanizmu interruptow (zreszta dosyc
przydatnego).

--

a1 (Bartek Janusz) mailto: arcone1 [at] invalid.gmail [dot] com




Tomek - 13-12-2005 09:36

  a1 wrote:
> Tomek wrote:
>
>> Tomek wrote:
>>
>>> a1 wrote:
>>>
>>>> Tomek wrote:
>>>>
>>>>> // musimy uwazac gdyz 'sleep' moze sie wybudzic w dowolnym
>>>>> momencie
>>>>> // i zglosic wyjatek - stad mala komplikacja tej metody
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> try
>>>>> {
>>>>> Thread.sleep( a_miliSec - diff );
>>>>> }
>>>>> catch( InterruptedException e) // sleep moze sie
>>>>> wybudzic przed czasem i rzuca wtedy wyjatkiem
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Moze sie sam wybudzic... i sam sie tez zepsuc moze... wogole to te
>>>> komputery niedobre sa tak sie same z siebie psuja...
>>>>
>>>> Czasem warto przeczytac dokumentacjie tam dosyc dokladnie jest
>>>> wytlumaczone kiedy i skad sie bierze InterruptedException.
>>>>
>>>
>>>
>>> "Thrown when a thread is waiting, sleeping, or otherwise paused for a
>>> long time and another thread interrupts it using the interrupt method
>>> in class Thread."
>>>
>>> I co z tego wynika? Ze mam nie obslugiwac InterruptedException?
>>>
>>
>> Od razu uprzedze ewentualna odpowiedz - nie wnikalem w to kiedy
>> interrupt bedzie wywolane, bo pisze jednowatkowy programik,
>> wiec taka konstrukcja jest moim zdaniem poprawna i w razie jakiegos
>> systemowego(nie wiem jakiego bo nie znam Javy na tyle) wybudzenia
>> prawidlowo odmierzy czas.
>
>
> Interrupt bedzie wolane wtedy jak je zawolasz, a taka konstrukcja
> efektywnie uniemozliwia stosowania mechanizmu interruptow (zreszta dosyc
> przydatnego).
>

Ok, tyle ze ja nie potrzebuje tego mechanizmu, mam jeden watek ktory ma
sie zamrazac na jakis czas po prostu. Wiec sobie zalozylem taki wariant
w razie gdyby z jakis niezidentyfikowanych powodow cos wybudzilo moj watek.




a1 - 13-12-2005 09:36

  Tomek wrote:

> Ok, tyle ze ja nie potrzebuje tego mechanizmu, mam jeden watek ktory ma
> sie zamrazac na jakis czas po prostu. Wiec sobie zalozylem taki wariant
> w razie gdyby z jakis niezidentyfikowanych powodow cos wybudzilo moj watek.

Krasnoludki czy gnomy a moze gremliny, slyszalem ze sa takie, laza chamy
i interruptuja cudze watki...

Pozatym, jeszcze taka uwaga:

Date date1 = new Date();
Date date2 = new Date();
long diff = (date2.getTime() - date1.getTime());

to tez jest majstersztyk... System.currentTimeMillis() nie wystarczy ??

--

a1 (Bartek Janusz) mailto: arcone1 [at] invalid.gmail [dot] com




Tomek - 13-12-2005 09:36

  a1 wrote:
> Tomek wrote:
>
>> Ok, tyle ze ja nie potrzebuje tego mechanizmu, mam jeden watek ktory ma
>> sie zamrazac na jakis czas po prostu. Wiec sobie zalozylem taki wariant
>> w razie gdyby z jakis niezidentyfikowanych powodow cos wybudzilo moj
>> watek.
>
>
> Krasnoludki czy gnomy a moze gremliny, slyszalem ze sa takie, laza chamy
> i interruptuja cudze watki...
>

Na codzien uzywam C++ i tam watki nie maja dla mnie specjalnych
tajemnic. W Javie potrzebowalem sleepa, wiec go znalazlem,
ale znalazlem tez info o tym ze rzuca wajatek. Nie znajac szczegolow
JVM przechwycilem ten wyjatek i tyle. Jezeli cos by wybudzilo mi watek
to od dalej zasypia bo takie ma zadanie w danym momencie.
Nigdzie nie znalazlem informacji ze mam uwazac na wybudzene watku
wiec nie uwazam.

> Pozatym, jeszcze taka uwaga:
>
> Date date1 = new Date();
> Date date2 = new Date();
> long diff = (date2.getTime() - date1.getTime());
>
> to tez jest majstersztyk... System.currentTimeMillis() nie wystarczy ??
>

Pewnie wystarczy ale dla mnie "ojczyzna" jest C++ a nie Java wiec wybacz
ta gafe :)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    który lepszy ? Art. malarskie w internecie? bazy miejscowosci, panstw, wojewodztw input w oracle'u??? Platne zlecenie - flash + php Adobe Acrobat Proffessional procedure PostgreSQL 7.4 dla Win Photoshop [MSSQL] DTS - warunek lub parametr
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com