Потоки

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28
Где можно почитать как работают потоки? В вики ничего нет об этом.
Потоки работают как копии скриптов или как-то по другому?
Вот например у меня скрипт берет в начале список данных со страницы, далее пару циклов, которые можно было бы выполнять многопоточно, работают с списком взятым вначале. Тупо запустить неск копий скрипта одновременно нельзя, т.к. список(который берется в начале) будет меняться.
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
215
Баллы
43
можно сначала сохранить список в файл, а потом уже много многопоточно работать с ним
 

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28

rostonix

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

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28
кем и чем меняться?
Вкратце шаблон:
парсим данные в список(напр. неск. строк: 1, 2, 3, 4)
пара циклов которые выполняют действия.
_________
все работает в 1 поток, если после циклов спарсить еще раз список, то он будет другой, напр: 1, 2, 3, а мне нужно чтобы работало с старым у которого 4 строки. В общем я не понимаю как именно работают потоки, как копии скрипта или что?
 

rostonix

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

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28
потоки не зависят друг от друга, пока вы не будете преследовать логику обратного
т.е. потоки это точные копии шаблонов? что значит "не будете преследовать логику обратного"?
По шабону:
1. Парсим в список ссылки (Через какое-то время ссылки на сайте меняются, поэтому при многопотоке, ссылки должны браться из первоначального списка)
2. Переход на ссылку с действиями
3. Берем из списка следующую ссылку и снова пункт 2, пока список не кончится.
Делаем 5 потоков и:
1. Шаблон в 5 потоков будет переходить по ссылкам из списка. (т.е. будет работать только с 2 и 3 пунктом, а 1 пункт выполнится 1 раз.
2. Каждый поток будет выполнять три пункта.
Какой вариант верный?
 

creastuff

Client
Регистрация
12.12.2013
Сообщения
5
Благодарностей
3
Баллы
3
проверяй в начале - если есть ссылки в списке, то делать 2 и 3 пункт
если ссылок нет - запускаем первый пункт
 

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28
проверяй в начале - если есть ссылки в списке, то делать 2 и 3 пункт
если ссылок нет - запускаем первый пункт
Это сделано, я не пойму как потоки работают, как 1 вариант или как второй?
 

creastuff

Client
Регистрация
12.12.2013
Сообщения
5
Благодарностей
3
Баллы
3
каждый поток - отдельное выполнение шаблона. как шаблон у вас выполняется в 1 поток, также будет выполнятся и в 5 потоков, логика не меняется, главное не допустить конфликта, чтобы разные потоки не делали одну и ту же операцию
например, если список "будет меняться" - значит все строки удаляем из списка после взятия, чтобы 2 разных потока не брали одну и ту же строку.
 
  • Спасибо
Реакции: Art4D и rostonix
Регистрация
21.05.2014
Сообщения
153
Благодарностей
9
Баллы
18
Почему количество потоков падает с 5 до 1?У меня шаблон в цикле берёт данные, заполняет форму и отправляет её и так по новой, записей больше 10 000..Я поставил 5 потоков. но в ответ только 1 поток..Ввёл в "Сколько делать" цифру "5", начало работать в 5 потоков, но по ходу работы сново всё упало до 1...что ж я не так делаю?? 09-09-14 1-43-37.jpg
 
Регистрация
21.05.2014
Сообщения
153
Благодарностей
9
Баллы
18
p.s обнаружилось что в логе пишет "Не найден HTML элемент", и соответственно потоки и спадают :(
 

rostonix

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

Suicide

Новичок
Регистрация
18.03.2015
Сообщения
3
Благодарностей
0
Баллы
1
в догонку:
1 задание = 1 поток, при указании максимум потоков в настройках задания = "1" ?
т.е. если я хочу запустить 2 задания одновременно (или последующее когда предыдущее еще выполняется) с параметром максимума = "1" - это равно двум потокам?
 

rostonix

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

Suicide

Новичок
Регистрация
18.03.2015
Сообщения
3
Благодарностей
0
Баллы
1
я понимаю, имеется ввиду что я же могу создать 10 заданий по 1 поток в каждом и запустить их все одновременно, это будет считаться 10ю потоками?
или я чото нетак понимаю?)
 

rostonix

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

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