зачем использовать TCP использовать таймер basi c, который не может быть всегда точным, тогда как таймер в java всегда точен? - PullRequest
0 голосов
/ 26 января 2020

Я читаю «Проиллюстрированный TCP / IP», и книга иллюстрирует, что ядро ​​реализует единичный таймер, например, 500 мс для TCP, а все другие таймеры TCP используют этот таймер единиц. Но первый период не может быть точным. Например, таймер повторной передачи составляет 12 единиц (6 с), но первый период времени может быть посередине, поэтому фактическое время может составлять 5,5-6 с.

Наоборот, когда в java оно легко реализовать Thread.sleep (5000 мс), который является точным и не является диапазоном.

Так что таймер TCP не может быть точным, тогда как java может?

1 Ответ

0 голосов
/ 26 января 2020

Я вроде как понимаю и хочу проверить свой ответ. Java и Tcp timer используют единичный таймер для подсчета за период времени. Единица ограничена процессором, который может составлять тысячи МГц, что означает, что тактовая частота равна нс. Таким образом, единичный таймер имеет хороший выбор степени детализации времени. Что касается веб-службы, которая имеет тенденцию работать медленно, TCP выбирает сотни мс, в то время как для java выбирается меньшая единица.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...