Limitando as atualizações da GUI do javafx

Recebo objetos de dados em momentos aleatórios, com alta frequência, e preciso atualizar a GUI do JavaFX com eles. No entanto, não quero preencher a fila de eventos javafx com um número muito grande de executáveis (eu uso Platform.RunLater).

Eu estive pensando em como melhor implementar um algoritmo de otimização.

Seria melhor ter um thread GUIUpdater separado que verifique, por exemplo, uma fila de bloqueio para novos objetos e, em seguida, durma por 30ms e, em seguida, verifique novamente, em um loop infinito? Nesse caso, uma fila de bloqueio seria a estrutura de dados ideal? Observe que eu só preciso do objeto de dados mais recente e o blockingQueue é uma fila FIFO e não consigo escolher apenas a entrada mais recente.Ou - seria melhor simplesmente atualizar a GUI com Platform.RunLater se nanoTime-startTime> 30ms? Nesse caso, não preciso de um thread separado para executar a chamada Platform.RunLater. No entanto - se uma atualização for recebida quando 30ms não tiver passado e nenhuma atualização for recebida por algum tempo, a última atualização não será exibida na GUI.

Alguma sugestão sobre como projetar um algoritmo de otimização para atualizações da GUI JavaFX Platform.RunLater de maneira curta e eficiente?

questionAnswers(1)

yourAnswerToTheQuestion