Несколько путей выполнения с ограниченными потоками - PullRequest
0 голосов
/ 27 августа 2011

У меня сложная задача асинхронного программирования, интересно, кто-нибудь делал что-то подобное с Java.Давайте предположим, что я разрабатываю фреймворк, который будет использоваться следующим образом:

  1. Выполнить некоторые пользовательские вещи Java
  2. Метод Call Framework
  3. Выполнить некоторые пользовательские вещи Java
  4. Call Framework Method

Приведенный выше код является синхронным с точки зрения пользователя.Однако Framework-методы внутренне выполняют некоторую длительную асинхронную операцию, и блокирование пользовательского потока на время операции неэффективно / выполнимо.Блокировка пользовательского потока невозможна, поскольку мне может потребоваться поддержка тысяч одновременных выполнений шагов 1-4 ... Другими словами, я ищу способ поддержки одновременных исполнений X-кода Java с использованием Y-потоков, где X> Y... Это чем-то похоже на то, что шаблон Reactor делает с IO, но более общее .. Есть мысли?

Ответы [ 3 ]

0 голосов
/ 27 августа 2011

Используйте формы классов java.util.concurrent, для начала, например, Executors .

0 голосов
/ 27 августа 2011

Начиная с JDK 1.5 у вас есть Concurrency API. Объекты параллелизма высокого уровня в Java Tutorial дают вам хорошее начало.

0 голосов
/ 27 августа 2011

нормальные пулы потоков / исполнители помогут вам в этом

если вы можете разделить базовые задания на несколько атомарных задач, которые будут активировать другие задачи; задания смогут выполняться с меньшим количеством активных потоков, чем заданий с достойной пропускной способностью

...