|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
alex55555LemkolegНужно, чтобы один из потоков занимался тем, что вызывал определенные методы из других потоков Поциенту изучать методы wait и notify, а так же конструкцию synchronize. Пассажир уже знаком с очередью с блокировкой, которая вполне решает базовые методы синхронизации. Походу в архитектуре нужна вторая очередь с блокировкой для возврата обработанной части из первой очереди. Вообще походу модель видется примерно так первая очередь как Prod/Cos и вторая топик как Pub/Sub если объем данных большой, то где нибудь таблицу повесить в Редисе или еще в каком кеше. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 20:41 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
Sergunka, Вторая очередь не решает проблем таких как: 1) излишних опросов потоками, ожидающих ответа, данной очереди. 2) наличие ответов уже несуществующим потокам. И то и другое снижает производительность. "Пассажира" конкретно интересует передача объекта потоку. Или, хотя-бы, инициализация переменной, находящейся в потоке. Если такой возможности нет ( как я понял ее нет), лучше так и написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 21:19 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
alex55555, Открою большую тайну: wait-notify приведет к простою потока. Что не совместимо с данной схемой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 21:21 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
Как много неправильных суждений собрано в одном посте:) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 22:08 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
Lemkoleg"Пассажира" конкретно интересует передача объекта потоку. Или, хотя-бы, инициализация переменной, находящейся в потоке. Если такой возможности нет ( как я понял ее нет), лучше так и написать. Да, такой возможности нету, ибо это против всякой логики, у вас какое-то неправильное понятие потока. Хотя чисто теоретически и этот финт проктолога возможен Потоки это деталь исполнения, если надо обменяться данными между двумя потоками то можно сделать эо двумя путями - 1) Передать в конструктор потока некий глобально доступный объект, и менять\опрашивать его либо 2) В самом потоке читать из известного места(файловой системы\базы данных\очереди) и если файл\запись\месседж появились то действовать соотвественно. Вам не дают сделать криво, но вы все равно упорно стараетесь вырвать зуб через жопу, ну удачи ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 22:13 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
LemkolegSergunka, Вторая очередь не решает проблем таких как: 1) излишних опросов потоками, ожидающих ответа, данной очереди. 2) наличие ответов уже несуществующим потокам. И то и другое снижает производительность. "Пассажира" конкретно интересует передача объекта потоку. Или, хотя-бы, инициализация переменной, находящейся в потоке. Если такой возможности нет ( как я понял ее нет), лучше так и написать. Вы невнимательно прочитали общий дизайн вторая должна быть топиком. Если бы Вы были знакомы с концепцией ексченж на RabbitMQ то там есть схема когда очередь открывается по фильтру авторIn this setup, we can see the direct exchange X with two queues bound to it. The first queue is bound with binding key orange, and the second has two bindings, one with binding key black and the other one with green. https://www.rabbitmq.com/tutorials/tutorial-four-python.html Скорее всего такая схема для оповещения продюсера из первой очерди наиболее рабочая, ну или как вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 23:01 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
Sergunka, Я правильно понимаю: группа очередей, на которые "подписываються" потоки? И получают сообщения из подписанной очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 00:40 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
LemkolegSergunka, Я правильно понимаю: группа очередей, на которые "подписываються" потоки? И получают сообщения из подписанной очереди. Вам надо уйти от концепции потока. Вам надо понять как строится продьюсер и консьюмер и как работают через топик публикатор и подписчик. В RabbitMQ там есть концепция когда можно через фильтр (exchange) раскидывать сообщения в разные очереди. На самом деле если Вы решите Вашу задачу на уровни концепции через очереди и топики, то дальше можно уже делать на низком уровни через потоки и синхронизацию если это важно в постановке задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 04:53 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
SergunkaВам надо уйти от концепции потока.+1 Потоки в голове автора главное и заслонили всё. Они ждут, подписываются, меняют БЛ, посылают байты в сеть и дожидаются ответа... Я вообще бы присудил по суду ему НЕ использовать потоки в течении квартала)). Из контейнера сервлетов даже переменную убрали чтобы потоки не туда вкорячивали. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 07:32 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
Lemkolegalex55555, Открою большую тайну: wait-notify приведет к простою потока. Что не совместимо с данной схемой. Не знаю, что там за прекрасная схема, но простоя процессора не будет при просто нормальной реализации (то есть даже без прикрас и прочих чудес). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 13:16 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
LemkolegДоброе время суток. Подскажите, решаема ли задача по создании такой модели: Есть множество потоков. Нужно, чтобы один из потоков занимался тем, что вызывал определенные методы из других потоков, используя их ИД, либо имени. Либо, каким-то образом, давал знать этому потоку, чтоб тот выполнил свой метод ( возможно, используя переменную в целевом потоке). Так не делается. Вам нужно выполнить какой-то метод. Ну так возмите и выполните его на текущем потоке. Но если методов много и вычислительной мощности одного потока не хватает, упакуйте метод в объект типа Runnable и отошлите в пул потоков. И если, наконец, все множество методов разбивается на подмножества, так что методы одного подмножества должны исполнятся последовательно, назначьте каждому подмножеству свой SerialExecutor, описанный в джавадоке к классу Executor. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 16:59 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
rfqи отошлите в пул потоков он упорно считает потоки главнее методов и хочет во время жизни потока менять методы и впихивать внутрь потока методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 19:06 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
LemkolegДоброе время суток. Подскажите, решаема ли задача по создании такой модели: Есть множество потоков. Нужно, чтобы один из потоков занимался тем, что вызывал определенные методы из других потоков, используя их ИД, либо имени. Либо, каким-то образом, давал знать этому потоку, чтоб тот выполнил свой метод ( возможно, используя переменную в целевом потоке). Тебе надо изучить примитивы синхронизации (семафоры, мьютексы и т.д.), межпоточные коммуникации и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 23:15 |
|
Вызов метода из другого потока по ид потока
|
|||
---|---|---|---|
#18+
Petro123rfqи отошлите в пул потоков он упорно считает потоки главнее методов и хочет во время жизни потока менять методы и впихивать внутрь потока методы. он просто хочет иметь менеджер потоков ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 23:16 |
|
|
start [/forum/topic.php?fid=59&msg=39738290&tid=2121636]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 321ms |
total: | 467ms |
0 / 0 |