Руководство по организации потоков Java - PullRequest
1 голос
/ 27 июня 2011

Я создал приложение, которое запрашивает базу данных MySQL для списка элементов.Полученный набор данных разбирается на отдельные объекты, и они передаются по всей программе в ArrayLists.

В настоящее время во время первоначального подключения к базе данных и любых последующих запросов графический интерфейс моей программы будет зависать.Чтобы противостоять этому, я хотел бы перевести мой класс DatabaseManager для запуска в отдельном потоке.

Мне интересно, как мне следует обрабатывать передачу данных между GUI и потоком DatabaseManager.

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

Текущие определения метода включают, но не ограничиваются,

  • initConnection ()
  • query (String SQLQuery)
  • printResultSet ()

В идеале эти функции должны вызываться из графического интерфейса и возвращаться очень быстро.Как мне настроить это?

1 Ответ

1 голос
/ 27 июня 2011

Когда я находился в той же ситуации, я использовал типизированный актер Akka для DatabaseManager (это поток внизу). Я отправил асинхронные запросы из моей табличной модели моему «субъекту базы данных», а затем обновил GUI / AbstractTableModel, указав SwingUtilities.invokeLater() от субъекта. Это сработало хорошо, но вы также можете сделать это с потоками вручную.

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