Как из многопотока складывать данные в одну таблицу, в конкретные ячейки

Vero

Client
Регистрация
22.11.2019
Сообщения
33
Благодарностей
4
Баллы
8
Друзья, коллеги, такая задача:

Проект работает с таблицей в формате: спарсил данные - занес в конкретную ячейку. Допустим, ячейку - B, а строка - переменная, далее спарсил - занес в ячейку - C, строка - переменная. И так бот по порядку раскладывает по таблице нужные данные.

Хочу запустить в многопоток, но переменная строки будет начинаться всегда с нуля, что в итоге приведет к перезаписи таблицы потоками. Добавлять новой строкой не получится, тк мне нужно заполнять ячейки.

Как решить данную задачу в многопотоке для работы с одной таблицей?

По сути проект похож на парсинг интернет-магазина в прайс-лист. Всё что нужно - это складывать в многопотоке в нужную ячейку и строку так, чтобы ничего не перезаписалось.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113
счетчик помещай в глобальную переменную, обращение к глобальной переменной делай всегда через локирование.
 

Vero

Client
Регистрация
22.11.2019
Сообщения
33
Благодарностей
4
Баллы
8
счетчик помещай в глобальную переменную, обращение к глобальной переменной делай всегда через локирование.
В глобальную переменную = входные настройки, так? И как через локирование обращаться? что это вообще..)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113
для начала надо изучить тему с многопотоком и локированием https://zennolab.com/discussion/threads/mnogopotok-i-zennoposter-lite.102529/post-679965
потом изучить тему про глобальные переменные и их использование в зеннопостере.

в 2-х словах тут не раскажешь, так как многопоток, ну очень обширная тема.
 
  • Спасибо
Реакции: Vero

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
743
Баллы
113
И как через локирование обращаться? что это вообще..)
Лок, это типа блокировка таблицы, в тот момент когда ты записываешь в таблицу, тут подробнее
Глобальная переменная, это одно общая переменная для всех потоков, тут подробнее
Найти их сможешь переменные + глобальные
 
  • Спасибо
Реакции: Vero

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113
Лок, это типа блокировка таблицы, в тот момент когда ты записываешь в таблицу, тут подробнее
Не надо путать начинающего. Лок это не блокировка таблици или чего то еще.
Лок это специальный механизм в работе кода, который блокирует выполнение КОДА, и ничего больше. То есть в этом месте из всех 100500 потоков, будет выполняться только один. это как узкое горлышко.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)