2012-03-12 4 views
0

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

Благодаря

+3

Что говорит джавадок этих двух классов? Что вы делаете? –

ответ

1

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

0

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

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

Swingworkers обрабатывают эти 2 вещи очень хорошо.

0

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

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

Счастливые потоки!