Java Threading - приложение Swing - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь научиться создавать потоки для класса (в частности, метода в классе), и я столкнулся с Thread() и SwingWorker(). Это свинг приложение. Какой мне выбрать и почему? Кроме того, есть ли какой-нибудь общий способ добавить реализацию для потоков в существующие методы?

Спасибо

Ответы [ 3 ]

1 голос
/ 12 марта 2012

SwingWorker в основном предназначен для выполнения фоновых процессов в Java. Swing означает, что приложение, основанное на пользовательском интерфейсе, например, при нажатии кнопки в пользовательском интерфейсе, вы хотите, чтобы в фоновом режиме происходил долгий процесс. Поток обычно используется для многозадачности в программах Java, таких как выполнение двух операций во времени. Поток может быть реализован из интерфейса Runnable, а также унаследован от класса потока. Проверьте Oracle Java Docs.

0 голосов
/ 12 марта 2012

Класс Thread - базовый элемент, необходимый для создания тем. JDK предоставляет либо «низкоуровневый» API (взгляните на класс Thread, интерфейс Runnable, synchoronized ключевое слово, методы wait(), notify()), либо API более высокого уровня (SwingWorker, Timer, среда executors).

В сети много учебников. Изучите основы в первую очередь. Прочитайте javadoc Thread, найдите несколько примеров, поиграйте с ними. Затем пройдите через Timer и SwingWorker. Это будет просто. Затем, когда вы поймете, как это работает, найдите время для изучения исполнителей, пулов потоков и т. Д.

Счастливого вам дня!

0 голосов
/ 12 марта 2012

Использование Swingworkers, вероятно, сделает ваш лайк легче, потому что он предназначен именно для того, что вам нужно. На веб-сайте Oracle есть хорошее учебное пособие , которое поможет вам начать работу. По сути, в приложении Swing вам необходимо убедиться, что:

  • Все, что взаимодействует с графическим интерфейсом, выполняется в EDT (Поток отправки событий)
  • Длинные задачи не запускаются на EDT, потому что если они это сделают, они заморозят GUI, пока ваши вычисления выполняются

Рабочие-качели очень хорошо справляются с этими двумя вещами.

...