Добрый день!
Не могу до конца разобраться, как работать с многопоточностью шаблона, как не допустить пересечений работы потоков с одним и тем же профилем одновременно.
Пример шаблона:
1) Создается профиль
2) Выполняются некоторые действия.
3) Профиль сохраняется
4) Путь до профиля сохраняется в txt файл.
Шаблон запускаем в 10 потоков. После выполнения имеем 10 профилей, 10 записей путей до профилей в txt файле.
Второй шаблон:
1) Из txt файла прошлого шаблона загружаем все записи (10 штук) в список
2) Из этого списка берем любую строку и удаляем ее из списка после взятия
3) Загружаем профиль по директории строки, взятой из списка
4) Делаем некоторые действия
5) Сохраняем профиль
Шаблон запускаем в 10 потоков. Пункт 2 второго шаблона - несколько потоков могут взять одну и ту же строку, и получится в дальнейшем так, что один профиль будет в нескольких инстансах использоваться. Как не допустить этого? А сделать, например, так, чтобы определенные действия шаблона в многопоточном режиме выполнялись не параллельно, а последовательно. Чтобы пункт 2 второго шаблона выполнялся так: все потоки доходят до пункта 2, останавливаются, поток 1 выполняет пункт 2, затем поток 2 выполняет пункт 2, затем поток 3 выполняет пункт 2 и т.д. до тех пор, пока все потоки последовательно не выполнят этот пункт, а затем все потоки продолжат работу в параллельном режиме.
Не могу до конца разобраться, как работать с многопоточностью шаблона, как не допустить пересечений работы потоков с одним и тем же профилем одновременно.
Пример шаблона:
1) Создается профиль
2) Выполняются некоторые действия.
3) Профиль сохраняется
4) Путь до профиля сохраняется в txt файл.
Шаблон запускаем в 10 потоков. После выполнения имеем 10 профилей, 10 записей путей до профилей в txt файле.
Второй шаблон:
1) Из txt файла прошлого шаблона загружаем все записи (10 штук) в список
2) Из этого списка берем любую строку и удаляем ее из списка после взятия
3) Загружаем профиль по директории строки, взятой из списка
4) Делаем некоторые действия
5) Сохраняем профиль
Шаблон запускаем в 10 потоков. Пункт 2 второго шаблона - несколько потоков могут взять одну и ту же строку, и получится в дальнейшем так, что один профиль будет в нескольких инстансах использоваться. Как не допустить этого? А сделать, например, так, чтобы определенные действия шаблона в многопоточном режиме выполнялись не параллельно, а последовательно. Чтобы пункт 2 второго шаблона выполнялся так: все потоки доходят до пункта 2, останавливаются, поток 1 выполняет пункт 2, затем поток 2 выполняет пункт 2, затем поток 3 выполняет пункт 2 и т.д. до тех пор, пока все потоки последовательно не выполнят этот пункт, а затем все потоки продолжат работу в параллельном режиме.