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