powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов метода из другого потока по ид потока
25 сообщений из 40, страница 1 из 2
Вызов метода из другого потока по ид потока
    #39735814
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток. Подскажите, решаема ли задача по создании такой модели:
Есть множество потоков. Нужно, чтобы один из потоков занимался тем, что вызывал определенные методы из других потоков, используя их ИД, либо имени. Либо, каким-то образом, давал знать этому потоку, чтоб тот выполнил свой метод ( возможно, используя переменную в целевом потоке).
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735816
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg,
В тех потоках разве код не выполняется в данный момент времени?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735817
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Выполняется
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735820
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegPetro123,
Выполняетсятогда не понял смысла в задаче.
Пример, 10 потоков сжимают 10 фильмов из avi в mpeg.
И тут вы решили их тормознуть другой задачей?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735821
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Вот именно. Или, хотя-бы, уведомить их каким-то образом. Как вариант, инициализировать переменную в целевом потоке. Целевой поток может просматривать значение этой переменной, время от времени
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg,
Если напр. Цикл в потке и проверка переменной флага , то будет выход из цикла и поток закончится на сотом кадре фильма.
Это надо?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735863
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Ну, не совсем. interrupt() не очень подходит. В идеале, все ж таки, было бы здорово присвоить значение в переменной в целевом потоке. А он уж сам опрашивал ее, когда ему было бы удобно.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735866
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
как-бы отправить сообщение потоку. А лучше объект. Возможно ли такое...
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735867
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg,
Делай. В чем проблема то переменную завести? По взрослому Cancelled token. По простому переменная.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735868
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegPetro123,
как-бы отправить сообщение потоку. А лучше объект. Возможно ли такое...начни с переменной.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735872
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Извиняюсь."Cancelled token" - что это?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735879
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Все, нашел. Большое спасибо. Это уже что-то. Может, поможете с объектом? В идеале должно быть так. В целевом потоке есть очередь. Допустим ConcurrentSkipListMap. Поток, обработавший объект, ложит его в эту коллекцию Целевой же поток, по мере необходимости, опрашивает ее, и получает объект.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735887
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegPetro123,
Все, нашел. Большое спасибо. Это уже что-то. Может, поможете с объектом? В идеале должно быть так. В целевом потоке есть очередь. Допустим ConcurrentSkipListMap. Поток, обработавший объект, ложит его в эту коллекцию Целевой же поток, по мере необходимости, опрашивает ее, и получает объект.

Почитайте про дизайн патерн Producer/Consumer. Наиболее классический пример это проблема Дейскстры "Спящий Парикмахер".
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735908
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegПоток, обработавший объект, ложит его в эту коллекцию Целевой же поток, по мере необходимости, опрашивает ее, и получает объектне делайте объекты под потоки. Делайте кусок работы, потом стартуйте поток.
Нарезать задачу и стартовать поток.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735910
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegВ идеале должно быть так.вы не обосновали чем пул потоков не подходит?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735974
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Потому что, обьект нужен работающему потоку. Не одни раз
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39735995
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegPetro123,
Потому что, обьект нужен работающему потоку. Не одни развыше говорил.
Работающему невозможно. Можно прервать выполняющийся поток.
Ферштейн?
Если у тебя для потока не все готово, не стартуй его.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736010
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тоже кажется что проблема накручена. Не настаиваю, но если обьясните подробно задачу, может и найдем сообща нормальное решение. Пока извините, это похоже на сумбур и велосипед
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736062
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,
Попробую описать. Есть поток, пишущий-читающий в файл. Строго по одному потоку на файл. Из файла он получает зашифрованный массив байтов. Часть этого массива остается в потоке, т.к. ему известно, что с этой частью ему делать. А вторую часть отдает потоку ( через LinkedBlockingQueue) другому потоку, который отсылает эту часть на другой сервер. До сюда проблем нет. Как только обработанный массив возвращается пишущему-читающему потоку, он должен вернуть его в изначальный поток.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736068
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkolegзабыл ник,
Попробую описать. Есть поток, пишущий-читающий в файл. Строго по одному потоку на файл. Из файла он получает зашифрованный массив байтов. Часть этого массива остается в потоке, т.к. ему известно, что с этой частью ему делать. А вторую часть отдает потоку ( через LinkedBlockingQueue) другому потоку, который отсылает эту часть на другой сервер. До сюда проблем нет. Как только обработанный массив возвращается пишущему-читающему потоку, он должен вернуть его в изначальный поток.ну и нагородил монстра.
LemkolegКак только обработанный массив возвращается пишущему-читающему потоку,
Т.е.тот поток что отправлял по http? строку мегабайт на сервер в сети ждет ответа?
Или сокет сервер пишем?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736077
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Оправил массив байтов. Хотя, какая разница?
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736078
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Есть один пишущий - читающий поток, связанный с сервером. Он и должен, каким-то образом, вернуть первоначальному потоку вернувшийся массив. Т.к. только в этом потоке известно, что дальше делать с массивом.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736087
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg,
Свой сокет сервер пишем.
Несколько потоков ввода-вывода на сокете
Мог бы сразу сказать.
Удачи!
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736098
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему такая архитектура? Вообще держать потоки невыгодно и немасштабируемо. Я так понимаю что вся соль в "Часть этого массива остается в потоке" Почему не сохранить его промежуточно на диск например, и когда придет ответ запустить Runnable с ссылкой на место на диске где сохранена эта часть?
В целом я бы двигался к отделению бизнес-логики от утилитной(в вашем случае потоки, шедулинг, очереди и тд). Какие-то соображения по секьюрити или видимости мб? Я бы строил систему примерно так -
1) Есть три типа тасков - a) вычитать файл и сохранить промежуточные данные, из остальных данных составить message и положить его в queue b) Взять таск из queue отослать его на сервер, подождать ответ, сделать из него месседж и положить во вторую queue c) взять месседж из второй queue, вычитать первую часть массива и завершить весь цикл. Можно таски b и c объединить, но так как b блокирующий, это не есть гуд, я бы выделил для них различные пулы.
2) Есть две очереди(возможно 3, если файлы добавляются динамически)
3) Есть три пула, для каждого типа задачи.
4) Есть два коорднатора, Мониторят каждый свою queue и при поступлении месседжей, конструируют Runnable и посылают в пул


Это если смотреть низкоуровнево.
В принципе задача хорошо ложится на акторную модель, потому можно посмотреть также на Akka, если видите много возни с вариантом выше.
...
Рейтинг: 0 / 0
Вызов метода из другого потока по ид потока
    #39736178
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemkolegНужно, чтобы один из потоков занимался тем, что вызывал определенные методы из других потоков
Поциенту изучать методы wait и notify, а так же конструкцию synchronize.
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов метода из другого потока по ид потока
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]