Тема заблокирована

Я пишу Java-приложение многопоточный, которое получает информацию от websocket и bufferized на LinkedList, и у меня есть еще один поток, который получает эту информацию из этого связанного списка, например, очередь, первым пришел - первым вышел, а также у меня есть Thread.sleep(1) для сделайте это подождите 1 миллисекунду, прежде чем он снова попытается получить информацию из связанного списка. Иногда я не знаю, что происходит, но кажется, что через несколько часов он ждет более 1 миллисекунды, например, потребительский поток не работает или слишком медленно. Есть ли лучшая альтернатива, чем Thread.sleep? Должен ли я буферизовать эту информацию, используя другую структуру данных? Кстати, этот LinkedList находится внутри синглтона, поэтому я могу создавать информацию в одном потоке и использовать в другом.

Спасибо

Привет, добро пожаловать в Stack Overflow. Узнайте, как задать хороший вопрос. Вы пытались решить проблему и столкнулись с препятствием? Вставьте код, с которым у вас возникли проблемы, чтобы уточнить!

Tristo 08.09.2018 12:19

На самом деле я отлаживаю его в течение недели и не знаю, использую ли я правильную структуру данных для обработки буферов. Или Thread.sleep ненадежен.

Allan Romanato 08.09.2018 13:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Thread.sleep не точен, особенно при разрешении 1 мс. См. Насколько точен Thread.sleep? и Что такое RTSJ, спецификация реального времени для Java?. Для этого вам нужно будет изучить программирование в реальном времени.

Другие вопросы по теме