|
|
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Всем привет! подскажите пожалуйста как управлять потоками? Например у меня есть пул потоков (thread) каждый поток выполняет свою задачу, например первый получает данные из бд второй анализирует третий отправляет по почте. Потоки создаются при старте программы и ждут своей "участи" wait(). Менеджер потоков должен "разбудить" конкретный поток, тот который мне нужен в данный момент времени. Если я правильно понял, то метод notify() разбудит какой-то любой поток из пула с высшим приоритетом. а как разбудить нужный мне поток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2016, 20:07 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
На каждую задачу - отдельные пулы отдельных потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2016, 13:39 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Программа одна пулы разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2016, 20:08 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Mandarinкаждый поток выполняет свою задачу, например первый получает данные из бд второй анализирует третий отправляет по почте.т.к. задачи строго друг за другом, то такая постановка не подходит. Придумай параллельные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2016, 21:53 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
MandarinВсем привет! подскажите пожалуйста как управлять потоками? Например у меня есть пул потоков (thread) каждый поток выполняет свою задачу, например первый получает данные из бд второй анализирует третий отправляет по почте. Потоки создаются при старте программы и ждут своей "участи" wait(). Менеджер потоков должен "разбудить" конкретный поток, тот который мне нужен в данный момент времени. Если я правильно понял, то метод notify() разбудит какой-то любой поток из пула с высшим приоритетом. а как разбудить нужный мне поток? То что вы описали уже есть в JSE, называется ExecutorService с кучей вариантов реализации. То что вы пытаетесь описать в более обширном масштабе называется Actor Model. Существует в виде разнообразных фреймверков, например RxJava. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 09:08 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Mandarin, все не то. wait-notify это один способ пул потоков - это другой метод, считайте обертка вокруг wait-notify, чтобы не дергать потоки руками. Пул содержит потоки, но в пуле исполняются не потоки а задачи, которые (как правило) не должны иметь ожидания и должны быть конечны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 13:41 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Petro123т.к. задачи строго друг за другом+64Mandarinнапример первый получает данные из бд второй анализирует третий отправляет по почтеА что общего у этих потоков ? Есть ли какой-нибудь разделяемый ресурс ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 13:46 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Mandarinу меня есть пул потоков (thread) Mandarinпулы разные Ты эта... определись один у тебя пул или таки разные. Если они разные, то утверждение MandarinМенеджер потоков должен "разбудить" конкретный поток не имеет смысла и его нужно заменить на "менеджер потоков должен разбудить первый попавшийся поток из конкретного пула", что и решается методом notify() - проблема решена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 14:51 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Мне кажется что тут все проще и ТС испугался высоких материй. Это конечно мои домысливания но: 1) В случае если потоки выполняют взаимонезависимые задачи, то ТС просто надо понять разницу между Thread и Runnable. Скорее всего просто достаточно оформить параллельные задачи в Runnable и пулять их в ExecutorService когда надо. И никаких потоков будить не придется. 2) Если задачи взаимозависимые, то не совсем понятно зачем их тогда разделять, ну тут уже надо смотреть специфику задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 15:06 |
|
||
|
Многопоточное программирование
|
|||
|---|---|---|---|
|
#18+
Mandarin, А можно совсем ламерский вопрос? Ежели у вас все потоки выполняются последовательно, то зачем вообще городить огород с многопоточностью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39201705&tid=2124221]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 472ms |

| 0 / 0 |
