- Регистрация
- 25.09.2014
- Сообщения
- 194
- Благодарностей
- 118
- Баллы
- 43
Не подскажите как реализовать общий счетчик, который складывает числа в рамках одного потока но работая с N-кол-вом шаблонов (одинаковых).
1. Есть шаблон, из-за специфики реализации, удобнее было реализовать тупо "клонируя" шаблон и выставляя в входных настройках номер port для коннекта.
По сути 1 шаблон = что -то вроде 1 поток, ну и он работает в потоке с цифрой 1.
2. Существует переменная с числом, которое является результатом сложений при работе всех проектов.
Т.е. допустим изначально это 0.
Оно привязано к параметру. К примеру
[TBODY]
[/TBODY]При запуске проекта выполняется логика сравнения этой переменной с макс. допустимым значением.
В данном случае берется первая строка из таблицы, в рамках всех запущенных шаблонов идет работа непосредственно с числовыми данными. Проще говоря берем "Василий|14300" и выполняем не определенное кол-во циклов и (запусков проектов) во всех запущенных шаблонах пока число не станет превышать ~29000.
Про суммирование:
Я запускаю 3 проектов шаблонов prj1, prj2, prjX...
При выполнении шаблона получаем переменную с числом, за весь прогон 1 шаблона происходит примерно либо 0 либо 1-3 добавления к взятой примеренной. Переменную увеличиваем на неизвестное число, т.к. оно определятся по ходу выполнения проекта.
Например при прогоне первого prj1 шаблона произошло 3 добавления к "Василий|14300", первое "+ 100" второе "+ 350" третье "+50" на выходе шаблона должно быть "Василий|14800" (14300 +500).
Но при этом в prj2 может быть + 0, а в prj3 к примеру получилось еще "+ 300". Но если проекты были запущены одновременно то изначальное значение общий переменной будет что в prj1 что в prj3 одинаковой "Василий|14300", и при завершении получается будет либо первое либо второе.
Ну и собственно загвоздка - как реализовать выполнения шаблонов параллельно выполняя сложение общего счетчика (переменной с числом), хотя-бы корректно соблюдая логику и выполняя считывание переменной с общим счетчиком в локальную, и по итогу суммируя результат добавлений с общей.
Пока что разделяю на файлы, но тоже не всегда корректно выполняется сложение.
Как можно и как лучше решить данную задачу? Лочить операцию работы с файлом вариант, но если только другие шаблоны не будут дожидаться выполнения одного, да и хз, применимо это в рамках нескольких шаблонов...
1. Есть шаблон, из-за специфики реализации, удобнее было реализовать тупо "клонируя" шаблон и выставляя в входных настройках номер port для коннекта.
По сути 1 шаблон = что -то вроде 1 поток, ну и он работает в потоке с цифрой 1.
2. Существует переменная с числом, которое является результатом сложений при работе всех проектов.
Т.е. допустим изначально это 0.
Оно привязано к параметру. К примеру
Василий | 14300 |
Пётр | 30950 |
В данном случае берется первая строка из таблицы, в рамках всех запущенных шаблонов идет работа непосредственно с числовыми данными. Проще говоря берем "Василий|14300" и выполняем не определенное кол-во циклов и (запусков проектов) во всех запущенных шаблонах пока число не станет превышать ~29000.
Про суммирование:
Я запускаю 3 проектов шаблонов prj1, prj2, prjX...
При выполнении шаблона получаем переменную с числом, за весь прогон 1 шаблона происходит примерно либо 0 либо 1-3 добавления к взятой примеренной. Переменную увеличиваем на неизвестное число, т.к. оно определятся по ходу выполнения проекта.
Например при прогоне первого prj1 шаблона произошло 3 добавления к "Василий|14300", первое "+ 100" второе "+ 350" третье "+50" на выходе шаблона должно быть "Василий|14800" (14300 +500).
Но при этом в prj2 может быть + 0, а в prj3 к примеру получилось еще "+ 300". Но если проекты были запущены одновременно то изначальное значение общий переменной будет что в prj1 что в prj3 одинаковой "Василий|14300", и при завершении получается будет либо первое либо второе.
Ну и собственно загвоздка - как реализовать выполнения шаблонов параллельно выполняя сложение общего счетчика (переменной с числом), хотя-бы корректно соблюдая логику и выполняя считывание переменной с общим счетчиком в локальную, и по итогу суммируя результат добавлений с общей.
Пока что разделяю на файлы, но тоже не всегда корректно выполняется сложение.
Как можно и как лучше решить данную задачу? Лочить операцию работы с файлом вариант, но если только другие шаблоны не будут дожидаться выполнения одного, да и хз, применимо это в рамках нескольких шаблонов...