@sergerdn Ну написал что ноль реакции,) ничего в логе не было ни во время запуска кода, ни во время нажатия на кнопку. Шас буду пробовать вариант от @UserTrue
вопрос про вызов функции в несколько потоков
-
Ситуация. Запускаю скрипт в 3 потока, в каждом запускаю функцию в 5 потоков. При этом мне надо передать в функции определенный параметр, который устанавливается в родительском потоке, в каждом потоке параметр разный. Каким образом это можно реализовать? То есть тупо передать параметр в подчинненую функцию.
-
@javer said in вопрос про вызов функции в несколько потоков:
Ситуация. Запускаю скрипт в 3 потока, в каждом запускаю функцию в 5 потоков. При этом мне надо передать в функции определенный параметр, который устанавливается в родительском потоке, в каждом потоке параметр разный. Каким образом это можно реализовать? То есть тупо передать параметр в подчинненую функцию.
Ну и фраза "подчинненую функцию".. Передача любой информации в другие потоки (вызванные любым способом) осуществляется через ресурс, либо через глобальную переменную. Лучше всего создать объект с необходимыми данными для каждой функции под каждый поток. Ещё можете установить 3 глобальных переменных и в зависимости от номера потока использовать определённую. Либо городить костыли через eval().
-
@fox уточню. Запускаю скрипт в 3 потока, в каждом получаю ресурс res+номерпотока и запускаю функцию в 5 потоков. В функции обрабатываю ресурс, который получил в потоке из которого функция была вызвана. Если предположить, что потоки создаются последовательно, то можно конечно в потоках верхнего уровня устанавливать глоб переменную и в каждой функции тупо копировать в локальную, но это если они создаются последовательно. Если через объект, то опять же каким образом понять в потоке где выполняется функция и что она вызвана из этого конкретного потока. Чет я совсем запутался...
-
@javer said in вопрос про вызов функции в несколько потоков:
Чет я совсем запутался...
Не ты один
:DОбъясни ситуацию, которую решаешь.
-
@fox делаю парсинг сайта в настройках есть города. И есть категории товаров 5 штук. То есть для каждого города надо обойти 5 категорий. Я хочу парсить одновременно 3 города. Начинаю парсить в 3 потока получаю ресурс город,затем в каждом потоке начинаю пять потоков для парсинга категорий. Таким образом в функции надо передать значение города, который обрабатываю. Как вариант конечно можно сделать в одном ресурсе город+категорию и делать в лоб, но мне кажется это не есть хорошо.
-
@javer said in вопрос про вызов функции в несколько потоков:
@fox делаю парсинг сайта в настройках есть города. И есть категории товаров 5 штук. То есть для каждого города надо обойти 5 категорий. Я хочу парсить одновременно 3 города. Начинаю парсить в 3 потока получаю ресурс город,затем в каждом потоке начинаю пять потоков для парсинга категорий. Таким образом в функции надо передать значение города, который обрабатываю. Как вариант конечно можно сделать в одном ресурсе город+категорию и делать в лоб, но мне кажется это не есть хорошо.
А категории для каждого города свои?
-
@javer said in вопрос про вызов функции в несколько потоков:
@fox одинаковые
Создавайте ресурс вида
город;категория;товари всё -
@fox said in вопрос про вызов функции в несколько потоков:
@javer said in вопрос про вызов функции в несколько потоков:
@fox одинаковые
Создавайте ресурс вида
город;категория;товари всёТакие удобно генерировать на старте прямо в басе, а потом готовый список распределять между потоками в отдельной функции.
-
Всем спасибо так и реализовал. Просто если бы был параметр который можно передать в поток было бы легче. А так получается многопоточность в одной плоскости, нельзя в зависимости от родительского потока реализовать различную функциональность подчинённых потоков.