• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java wstrzymanie wątków

Mały hosting, OGROMNE możliwości
0 głosów
507 wizyt
pytanie zadane 1 grudnia 2016 w Java przez L33TT12 Gaduła (3,950 p.)

Hejka, uczę się właśnie Javy oraz mam problem ze zrozumieniem wstrzymania pracy wątku oraz jego wznowienia. Mianowicie mając taki kod

public void run() 
{
//coś 
synchronized{
while(pause) 
    wait() ;
} 
} 

void mypause() 
{
pause=true;
} 

synchronized void myresume() 
{
pause=false;
notify();
} 

To dlaczego nie możemy dać wait()  do metody mypause tylko musi być w głównej pętli? 

Przecież wait wstrzymuje pracę wątku aż do momentu wywołania notify, więc dlaczego ma to być w pętli while? 

1 odpowiedź

+1 głos
odpowiedź 1 grudnia 2016 przez niezalogowany

source: stackoverflow

(...) Yet another point is that you can get spurious wakeups from wait (i.e. the thread which is waiting resumes for no apparent reason). You should always wait whilst spinning on some condition as follows (...)

Podobne pytania

0 głosów
3 odpowiedzi 614 wizyt
+1 głos
4 odpowiedzi 655 wizyt
pytanie zadane 21 czerwca 2017 w C i C++ przez wanttobeanengineer Obywatel (1,120 p.)
0 głosów
1 odpowiedź 359 wizyt
pytanie zadane 24 maja 2017 w Java przez gaaf Nowicjusz (140 p.)

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,261 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...