Bardzo dokładne opóźnienie

0

mam pytanie czy możliwe jest wykonanie opóźnienia z większą dokładnością niż mikrosekunda. Najlepiej by było gdyby się dało wykonać opóźnienie z dokładnośćia do 0.000000001 sekundy. Z góry dzięki za odpowiedź.

0

Na multitasku bedziesz mial raz 1us (czyli mniej wiecej jeden cykl procka z 1GHz - nop?) a raz grubo ponad 10ms (jak ci sie scheduler wywola tuz po albo przed tym sleepem), taka dokladnosc osiagniesz jedynie na dedykowanym OSie (chocby bez przerwan ktore zaklocilyby ta przerwe).

Ale generalnie troche glupie pytanie, po co ci taka dokladnosc w Javie? Nie majac dostepu do kodu maszynowego nawet nie wiesz ile sie wykonuja twoje instrukcje (a zwykle i = 1; trwa o wiele dluzej niz 1us).

0

chciałe zrobić coś co wymaga dużej precyzji przy opoznianiu zadań ale tak myslalem ze to jest niewykonalne w javie, pewnie tylko w asamblerze by sie dalo cos takiego wykonac.

0

Tu nie chodzi nawet o jezyk, program w asemblerze tez przeciez jest jednym z procesow i podlega pod scheduler, no i druga sprawa, ze nie bardzo widze tego sens, po co ci to w ogole potrzebne?

0
micz napisał(a)

chciałe zrobić coś co wymaga dużej precyzji przy opoznianiu zadań...

jeśli to coś nie trwa długo możesz próbować dynamicznie ustawiać priorytet czasu rzeczywistego na czas wykonywania operacji, ale to trochę krzywe rozwiązanie.

0

z własnego podwórka (Fizyka). Najlepsze opóźniacze i stopery niestety nie są programowane, ale są ty oddzielne układy elektroniczne. Zazwyczaj są one dedykowane pod konkretną maszynę / urządzenie jednak dokładność jest rzędu 10-10sek.
Rozwiązaniem twojego problemu może być nie tyle co super dokładny wyzwalacz, ale spowolnienie procesu. Postaraj się tak wydłużyć wymagany czas reakcji by można było operować na ms.

0

Mierzenie czasu z dużą dokładnością:
http://www.google.com/search?hl=pl&q=%22high+precision+timer%22+java&btnG=Szukaj+w+Google&lr=

Usypiania:
Thread.sleep(milli,nano)

Nie wiem, jak to jest zrobione w javie, ale w kernelu linuxa funkcja do czekania z dokładnością do nanosekund czeka aktywnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1