воскресенье, 19 февраля 2012 г.
пятница, 14 октября 2011 г.
Структура предложения
http://homepages.tversu.ru/~ips/LingFak1.htm
http://www.licey.net/russian/syntax/r1_1_1
http://www.licey.net/russian/map
http://ru.wikipedia.org/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA
http://www.ruscorpora.ru/index.html
http://www.russofile.ru/articles/article_16.php
http://www.licey.net/russian/syntax/r1_1_1
http://www.licey.net/russian/map
http://ru.wikipedia.org/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA
http://www.ruscorpora.ru/index.html
http://www.russofile.ru/articles/article_16.php
воскресенье, 22 июня 2008 г.
Распаралеливание вычислений.
Вариант распаралеливания вычислений в программе.
Схема пакета Executor:

Использование.
Метод put на языке С++.
Метод Queue::get такой-же, за исключением ожидания на cond с таймаутом при пустой очереди.
Метод run на языке С++.
Приведенная схема позволяет:
- свести к минимуму взаимные блокировки на разделяемых ресурсах ;
- сглаживать нагрузку на "неторопливые" части системы (база данных, сетевой обмен, дисковые операции);
- организовать отложенное выполнение долгих операций при отсутствии времени выполнить их в рабочих алгоритмах программы;
- задействовать ресурсы многопроцессорных/многоядерных систем;
Схема упрощена для демонстрации. В реальной жизни необходимо позаботится об обработке исключительных ситуаций.
Когда необходимо возвращать из Job::doIt() информацию приведенная схема применима, но немного усложняется.
Об этом следующий раз.
Ссылки в тему:
Одиночка на Wikipedia (осторожно пользуйтесь одиночкой Майерса, его поведение зависит от реализации компилятора)
Схема пакета Executor:

Использование.
class SomeJob:public Job
{
...
SumeJob(int aparam1, int aparam2);
void doIt();
}
......
Job* j = new SomeJob(param1, param2);
executor->put(j);
// о j можно забыть, пакет executor сам его удалит
Метод put на языке С++.
void Queue::put(Job* c)
{
{
Utils::Locker l(mutex);
cmdList.push_back(c);
}
cond.event();
}
Метод Queue::get такой-же, за исключением ожидания на cond с таймаутом при пустой очереди.
Метод run на языке С++.
void Queue::run()
{
Queue* q = Queue::instance();
Job* c = NULL;
while(!terminated())
{
c = q->get();
if(!c) continue;
c->doit();
delete c;
}
}
Приведенная схема позволяет:
- свести к минимуму взаимные блокировки на разделяемых ресурсах ;
- сглаживать нагрузку на "неторопливые" части системы (база данных, сетевой обмен, дисковые операции);
- организовать отложенное выполнение долгих операций при отсутствии времени выполнить их в рабочих алгоритмах программы;
- задействовать ресурсы многопроцессорных/многоядерных систем;
Схема упрощена для демонстрации. В реальной жизни необходимо позаботится об обработке исключительных ситуаций.
Когда необходимо возвращать из Job::doIt() информацию приведенная схема применима, но немного усложняется.
Об этом следующий раз.
Ссылки в тему:
Одиночка на Wikipedia (осторожно пользуйтесь одиночкой Майерса, его поведение зависит от реализации компилятора)
Ярлыки:
распаралеливание,
структура,
facade,
singleton,
thread
вторник, 10 июня 2008 г.
О наследовании в ООП
Наследование не самый эффективный механизм в ООП.
Хотя наследование и является одним из трех важнейших механизмов теории объектно-ориентированного программирования, на практике
Пример на основе классов потоков - история вопроса VCL, MFC, Java, .NET.
Пример - комманды меню. агрегирование Command в Menu.
Пример
Хотя наследование и является одним из трех важнейших механизмов теории объектно-ориентированного программирования, на практике
Пример на основе классов потоков - история вопроса VCL, MFC, Java, .NET.
Пример - комманды меню. агрегирование Command в Menu.
Пример
среда, 4 июня 2008 г.
Нулевой пост
Здравствуйте.
Начинаю вести блог. Очень долго заставлял себя сделать это. В ИНЕТЕ я читатель - предпочитаю поглащать информацию.
Но рано или поздно, а выходить из тени надо.
О себе:
В классификации Спольски занимаюсь разработкой встроенного ПО.
Думаю Вам будет у меня не скучно.
Начинаю вести блог. Очень долго заставлял себя сделать это. В ИНЕТЕ я читатель - предпочитаю поглащать информацию.
Но рано или поздно, а выходить из тени надо.
О себе:
В классификации Спольски занимаюсь разработкой встроенного ПО.
Думаю Вам будет у меня не скучно.
Подписаться на:
Сообщения (Atom)