Spać i czekać

Anonim

Sleep vs Zaczekaj

Maszyny, takie jak komputery, wykorzystują sztuczny język do tworzenia programów, kontrolowania ich i pozwalają komunikować instrukcje i wyrażać algorytmy. Ten język nazywa się językiem programowania.

Przed nadejściem komputerów języki programowania były już używane w krosnach i fortepianach. Ponieważ korzystanie z komputera stało się bardziej powszechne, używano obecnie kilku języków programowania.

Istnieje kilka języków komputerowych, w tym języki wysokiego poziomu, takie jak: BASIC, C, C ++, Fortran, Pascal i Java. Każda maszyna wirtualna i procesor mają swój własny język komputerowy, każdy ma swoje słabości i mocne strony, a każda maszyna wirtualna uruchamia wątek po uruchomieniu. Wątek wykonuje kod aplikacji w programie. Może sprawić, że program będzie działał szybciej i pomoże w jego wydajności i użyteczności, zwłaszcza gdy używanych jest wiele wątków.

Maszyny wirtualne, takie jak maszyna wirtualna Java, obsługują koncepcję wielowątkowości z wątkami o wyższym priorytecie wykonywanymi najpierw przez wątki o niższym priorytecie, zapewniające sprawiedliwy podział przetwarzania czasu.

Używa metod zarządzania wątkami, które mogą tworzyć, sterować i kończyć przepływ kontrolek lub wątków we wspólnej przestrzeni. Dwie z tych metod zarządzania wątkami to metody oczekiwania i snu.

Te dwie metody są oddzielne. Metoda uśpienia kontroluje wykonanie wątku i opóźnia następną akcję, podczas gdy metoda wait nie kontroluje wykonywania wątku, aby umożliwić uruchamianie innych wątków.

Metoda wait jest zdefiniowana w klasie Object i wysyła bieżący wątek do stanu niewykonalnego. Jest używany razem z metodami notify i notifyAll, aby tymczasowo zatrzymać kod wykonawczy obiektu i wznowić go później.

Działa poprzez wywołanie obiektu blokady i umożliwienie synchronizacji bieżącego wątku z nim. Zaczekaj, zwolnij blokadę i umieścisz wątek na liście oczekujących, a pozostałe wątki zsynchronizują się z nim, powodując, że oryginalny wątek się obudzi. Programista określa konkretny czas, kiedy wykonanie rozpoczyna się od nowa.

Natomiast metoda uśpienia jest zdefiniowana jako metoda statyczna. Opóźnia wykonywanie wątków, a nie obiektów, a także zawiesza wątek, który jest wykonywany. Wysyła bieżące wątki do stanu niewykonalnego przez pewien okres czasu. Może wpływać na zachowanie aplikacji wielowątkowych, ponieważ utrzymuje blokady synchronizacji bieżącego wątku. Gdy wątek jest w zsynchronizowanym bloku, żaden inny wątek nie może wejść do bloku.

Streszczenie:

1. "Uśpienie" to metoda zarządzania wątkami, która jest zdefiniowana jako metoda statyczna, natomiast "oczekiwanie" to metoda zarządzania wątkami zdefiniowana w klasie Object. 2. Sleep jest metodą, która wykonuje wątki, podczas gdy wait jest metodą, która wykonuje obiekty. 3. Sleep utrzymuje blokady synchronizacji bieżącego wątku i wpływa na zachowanie aplikacji podczas oczekiwania nie. 4. Sleep kontroluje wykonanie wątku i nie zezwala na inne wątki w zsynchronizowanym bloku, podczas gdy wait nie kontroluje wykonania wątku, aby umożliwić uruchamianie innych wątków.