Многопоточность

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Привет!
Ребята и котята подскажите как работает многопоток?

Например:
Данные берутся из экселя
0-a - В переменную
0-b - В переменную
0-c - В переменную
0-d - В переменную
0-e - В переменную
Удаляем строку
Далее постинг.

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

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Брать не ячейки, а строки.
И при этом чтобы таблица была синхронизирована с файлом, стояли в свойствах "загружать из файла" и "сохранять изменения".
Тогда при взятии строки с удалением, все потоки будут брать разные строки
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Понял, а как прописывать имя столбца, 0-а, 0;а, 0:а или ?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
нумерация для постера:
A B С D E F
и т д
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Теперь вопрос: как это потоки разогнать? Тест потоков выдал максимум 80, поставил на 10, а зенно воркает в один поток.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
сколько по времени выполняется проект?
приложите скрин ZennoPoster главного окна с выделенным шаблоном
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Запустил сегодня ночью ~1-00
Хронометрировал, в один поток до завершения осталось 44 часа((( 1.jpg
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Скрин не о чем не говорит. Как проект построен? Внутренними циклами?
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Берем строку с удалением, раскидываем по переменным
Урл
Н1
Н2

Идем по урлу, парсим в переменные, тримаем
Подтягиваем доп текст

Идем в блог, постим запись
После перегружаем инстанс
Считаем строки и опять берем строку...
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
У вас сколько делать стоит на скрине 0
Не увидел вчера с планшета. Потоков не может быть больше. чем значение в "сколько делать"
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
1-н раз. Там же по кругу, берем строку, делаем, потом опять...
В экселе 8к+ строк
Как правильно организовать шаблон/схему?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Убрать перезагрузки инстанса и завершать шаблон на этом шаге.
И запускать уже во много потоков
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
То есть ставим 10 потоков и количество повторений 8к?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
ну если вам 8К нужно выполнить шаблон, то да
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Огонь))) Спасибо!
 
Регистрация
21.05.2014
Сообщения
153
Благодарностей
9
Баллы
18
чтобы не плодить тем насчёт многопоточности, спрошу тут. вот у меня есть список их 1500 страниц, и из каждой надо спарсить ссылки, задаю я в зеннопостере в 3 потока к примеру работать. а как зеннопостер работает со списком? как он определяет что каждому потоку своя страница нужна для обработки?а не так, что все потоки парсят одну страницу)вопрос просто информационный, хочется понять принцип сам многопоточности
 

eve.cm

Client
Регистрация
16.01.2013
Сообщения
100
Благодарностей
16
Баллы
18
чтобы не плодить тем насчёт многопоточности, спрошу тут. вот у меня есть список их 1500 страниц, и из каждой надо спарсить ссылки, задаю я в зеннопостере в 3 потока к примеру работать. а как зеннопостер работает со списком? как он определяет что каждому потоку своя страница нужна для обработки?а не так, что все потоки парсят одну страницу)вопрос просто информационный, хочется понять принцип сам многопоточности
Список страниц можно положить в список. Дальше добавить блоки, которые забирают страницы из этого списка с удалением.
Если запустишь многопоток, то каждый поток будет корректно забирать из списка только то, что еще не взял другой поток и методично парсить взятое.
Это понятное объяснение?) Кажется, по-другому никак. У меня вся многопоточность завязана на ключевом действии: брать строку из общего списка с удалением из него и начинать обработку.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Все верно
 
Регистрация
21.05.2014
Сообщения
153
Благодарностей
9
Баллы
18
Список страниц можно положить в список. Дальше добавить блоки, которые забирают страницы из этого списка с удалением.
Если запустишь многопоток, то каждый поток будет корректно забирать из списка только то, что еще не взял другой поток и методично парсить взятое.
Это понятное объяснение?) Кажется, по-другому никак. У меня вся многопоточность завязана на ключевом действии: брать строку из общего списка с удалением из него и начинать обработку.
то есть каждый поток сам по себе знает, и человеку ничего не надо дописывать в проект чтобы работало?если так, то хорошо)
 

eve.cm

Client
Регистрация
16.01.2013
Сообщения
100
Благодарностей
16
Баллы
18
то есть каждый поток сам по себе знает, и человеку ничего не надо дописывать в проект чтобы работало?если так, то хорошо)
Сами потоки ничего не знают, но в нашем случае список выступает в роле "контролера".
Каждый поток обращается к списку и получает свежие данные для исполнения (аккаунт для обработки по шаблону, адрес страницы)
Чтобы коллизий не происходило, можно использовать функцию автоматического удаления данных, выданных из списка.
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Не могу разогнать потоки более 9 шт (берем урл, качаем, перемещаем)

 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
проект слишком быстрый. увеличьте его время. обрабатывайте не 1 страницу, а несколько в цикле.
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
Если без остановки в Зенне я добавлю паузу в ПМ, Зенно подхватить изменения?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
да. при следующем выполнении
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 683
Баллы
113
а так ли важно правильное отображение кол-ва выполняемых потоков в ЗП?
важно наверное, чтобы они максимально быстро делались и зачем замедлять их, чтобы в ЗП видеть число 40, а не 7, 8 или 9?
o_O
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
не нужно паузы, нужно несколько циклов. тогда производительность вырастет)
 

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