Я хочу знать, как выполнять более одной работы в Eclipse одновременно. Я хочу одновременно выполнять несколько заданий в RCP.
A Job более или менее включает Thread, и все запущенные (запланированные) экземпляры заданий выполняются параллельно.
Job
Thread
Предложение для дальнейшего чтения:
Спустя несколько лет у вас возникла противоположная проблема - ограничить количество одновременных заданий. Вот почему Eclipse 4.5M4 теперь будет включать (4 квартал 2014 г.) способ поддержки групп заданий с регулированием.
См. ошибка 432049 :
Eclipse предоставляет простой API заданий для параллельного и асинхронного выполнения различных задач. Одним из ограничений заданий Eclipse является то, что нет простого способа ограничить количество рабочих потоков, используемых для выполнения заданий. Это может привести к взрыву пула потоков, когда многие задания запланированы в быстрой последовательности. В связи с этим легко использовать задания для параллельного выполнения различных несвязанных задач, но трудно реализовать тысячи взаимодействующих заданий для выполнения одной большой задачи. Eclipse в настоящее время поддерживает концепцию Job Families, которая обеспечивает один способ группировки с поддержкой операций присоединения, отмены, спящего режима и пробуждения для всей семьи. Чтобы решить все эти проблемы, мы хотели бы предложить простой способ сгруппировать набор заданий Eclipse, которые отвечают за части одной и той же большой задачи . API будет поддерживать регулирование, объединение, отмену, объединение отчетов о ходе выполнения и ошибках для всех заданий в группе, а функциональность группировки заданий может использоваться для перезаписи критичных для производительности алгоритмов для использования параллельного выполнения взаимодействующих заданий.
Eclipse предоставляет простой API заданий для параллельного и асинхронного выполнения различных задач. Одним из ограничений заданий Eclipse является то, что нет простого способа ограничить количество рабочих потоков, используемых для выполнения заданий. Это может привести к взрыву пула потоков, когда многие задания запланированы в быстрой последовательности. В связи с этим легко использовать задания для параллельного выполнения различных несвязанных задач, но трудно реализовать тысячи взаимодействующих заданий для выполнения одной большой задачи.
Eclipse в настоящее время поддерживает концепцию Job Families, которая обеспечивает один способ группировки с поддержкой операций присоединения, отмены, спящего режима и пробуждения для всей семьи.
Чтобы решить все эти проблемы, мы хотели бы предложить простой способ сгруппировать набор заданий Eclipse, которые отвечают за части одной и той же большой задачи . API будет поддерживать регулирование, объединение, отмену, объединение отчетов о ходе выполнения и ошибках для всех заданий в группе, а функциональность группировки заданий может использоваться для перезаписи критичных для производительности алгоритмов для использования параллельного выполнения взаимодействующих заданий.
Вы можете увидеть реализацию в this commit 26471fa
См. Eclipse RCP: одновременно выполняется только одно задание?
Задания могут по желанию завершать свое выполнение асинхронно (в другом потоке), возвращая статус результата ASYNC_FINISH. Задания, которые завершаются асинхронно, должны указывать поток выполнения, вызывая setThread, и должны указывать, когда они завершаются, вызывая метод done.
ASYNC_FINISH
setThread
Используйте Threading для одновременного запуска более одного задания.
Thread th = new Thread() { public void run() { //Here is a thread that you can use wherever you want in your code } }; th.start();