2012-02-08 4 views
-1

Доброго дня, я новичок с многопоточной ареной, и хотел бы попросить помощи относительно ниже сценария:

1) Основной класс Java будет запрашивать из списка дб файлов (Collection 1) для ftp'd на другой сервер.

2) Основной класс вызовет другой класс (класс 2), который будет выполнять разные процессы в зависимости от возвращаемых данных (сборник 1).

3) Класс 2 должен выполнять три процесса на запись (элемент) сборника 1 (подкласс 2). (ftp put, ftp get (Return File), обновить db на основе данных Return File и отправить электронное письмо получателю записи (item)).

4) Конец процесса подкласса 2.

5) Конец процесса класса 2.

6) Основной класс по-прежнему выполняется до тех пор, пока не будет получена новая коллекция.



Учитывая основной сценарий выше, максимальная запись (элемент), которую можно обработать, составляет всего 10, пока не будет обработана вся запись (элемент).

Вопросы:

а) В случае, если Основной класс можно рассматривать как нить или работоспособной, так как он будет выполняться только один раз, и пусть она работает в течение всего дня?

b) Какой был бы лучший многопоточный подход, который можно сделать в пункте 2? (ExecutorService или Thread или Runnable)

c) И для Sub Class 2, если базовые классы (ftp, DB-Update и Email-отправитель) должны быть определены как runnable? Где процесс обновления DB зависит от файла возврата FTP.

d) Что касается DB-Updater подкласса, может ли он быть реализован как многопоточный? (например, если обновленные записи составляют около 2000).

e) Как я могу заставить процесс подкласса 2 стать единым объектом для обрабатываемого элемента?
И сигнализируйте вызывающий класс (класс 2), когда процесс уже завершен.

JAVA многопоточность начинающего запрос

Надеюсь, что кто-то может указать мне в правильном направлении относительно моего запроса выше.
спасибо.

+1

Если вы ищете «свалку моей работы/домашней работы» и есть кто-то другой сделать это для меня "сайт, ну это не так. Это «показать мою работу, мои собственные ответы и мысли и задать конкретный вопрос». Голосование, чтобы закрыть этот «вопрос» как свалку работы/домашней работы ... то есть, если исходный плакат не хочет редактировать свой вопрос и показывать плоды своих трудов, а также задавать * особые * вопросы. –

+0

Основной класс всегда является «основной» нитью. вы можете создавать другие потоки, если хотите в своей логике. Кроме того, потратьте некоторое время на то, чтобы ответить на ваши вопросы, чтобы вам не приходилось задавать 5 вопросов за один раз. – MozenRath

+0

@HovercraftFullOfEels, поскольку тема подразумевает, что это запрос, а не дать мне запрос на исходный код. Пожалуйста, будьте немного открытыми, поскольку не все так же хорошо осведомлены, как и вы. –

ответ

0

Есть две вещи, которые я могу видеть вас беспокоит здесь и Java имеет две вещи, чтобы решить их:

  • Проверьте Javadocs для Thread.start() и Thread.run()
  • Проверьте Javadocs для Executor и ExecutorService

Я уверен, что много, что происходит в вашей голове Виль быть решена с помощью этой

1

Мы используем потоки только в том случае, если мы хотим выполнять длинные задачи вычисления в фоновом режиме. Основная задача всегда является основным потоком. Вы можете создавать другие экземпляры потока из нее. Вы можете сделать свой второй и третий класс runnable и использовать поток для их запуска В вашем случае вам нужно дождаться окончания потоков.g только после поиска ваших коллекций в основной теме, вы можете запустить второй поток, и вы должны дождаться завершения второго потока до выполнения третьего потока

Смежные вопросы