Показать сообщение отдельно
Старый 08.11.2005, 15:42   #13  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от lagr221374
Можно на эту тему поподробнее если не затруднит + код
Лехко

Изначально задача формулировалась примерно так "Допустим, у нас есть достаточно 'тяжелая' сессия, которая на многопроцессорном сервере приложений интенсивно использует один процессор, но не использует остальные. Это в принципе возможно?" Так вот "в принципе" ответ будет "да, если..". Если мы можем разбить нашу задачу на несколько мелких задач, разбросать их по нескольким потокам в принципе несложно. Я не стал использовать Thread (был когда-то нехороший опыт), а взял AOSLoadGen, благо к нему претензий по стабильности работы не было

В итоге получился, как я уже говорил, сферичейский конь в вакууме:
- обходя план счетов (LedgerTable), по каждому счету запускаем отдельный поток, обегающий проводки по счету (LedgerTrans)

Разумеется, сам алгоритм практической ценности не имеет, он нужен только для демонстрации

Дальше появляются вопросы
- как узнать о том, что созданный нами поток завершил свою работу?
- как вернуть из него результаты в основной (родительский) поток?
- как вообще организовать синхронизацию этих потоков?

Пока нормального решения, которое действительно можно было использовать, я не нашел. Я точно не хочу использовать для обмена сообщениями таблицы, я не уверен, что хочу использовать глобальные переменные. Если у кого-то есть идеи, с радостью их выслушаю
Вложения
Тип файла: xpo AOSLoadGen.xpo (2.4 Кб, 439 просмотров)