Не понятно как работают потоки
-
Всем привет, подскажите логику работы потоков, для примера сделал в скрипте 10 потоков, успешных 20, не успешных 999999, суть вывод в лог цифру 1, в итоге получился такой вот лог. Что не так?
[11:28:04] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:04] Поток №1 : 1 [11:28:04] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:04] Поток №1 : 1 [11:28:04] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №1 : 1 [11:28:05] Поток №1 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №2 : 1 [11:28:05] Поток №2 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №3 : 1 [11:28:05] Поток №3 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №4 : 1 [11:28:05] Поток №4 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №5 : 1 [11:28:05] Поток №5 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №6 : 1 [11:28:05] Поток №6 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №7 : 1 [11:28:05] Поток №7 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №8 : 1 [11:28:05] Поток №8 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №9 : 1 [11:28:05] Поток №9 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Поток №10 : 1 [11:28:05] Поток №10 : Поток выполнен успешно с сообщением "Ok" [11:28:05] Скрипт завершен корректно
-
@kotikov на даный момент логика такова, что если 19/20 успехов, то не остается 1 поток, а работают все 10. А о достижении успехов потоки не прерываются, а заканчивают работу. Это сделано что бы не тярять попусту ресурсы.
Так же может быть ситуация что например успех 11/20, работают 10 потоков, 9 завершаются успешно, тогда новые не создаются, а 10й продолжает работать пока не закончит.
-
@DrPrime
А можно потоками управлять вручную? Т.е через скрипт, создать новый поток, закрыть. и т.п?
-
@kotikov https://community.bablosoft.com/topic/806/управление-потоками-к-вом-неудач-и-успехов-из-выполняющегося-скрипта/13
Стандартными средствами БАС пока нельзя, но в теме описано как это можно делать с помощью глобальных переменных
-
@kotikov
Чтобы прервать работу скрипта ровно после 20 успешных выполнений нужно использовать действия "Успешных выполнений", "If" и "Прервать Скрипт"Динамическое изменение количества потоков и этапы выполнения скрипта будут в одной из следующих версий.