Сергей-4030> Что ж вам еще сказать. Есть имплементации систем, использующих треды, но не использующие util.concurrent. И не просто использующих, а повышающих эффективность и/или упрощающих дизайн многократно за счет использования тредов. Это правда.
Сергей-4030> Для вас же если util.concurrent не используют, значит и multithreading им не нужен. А это неправда. Речь о том, что как только
нормальный разработчик начинает использовать потоки, он тут же узнает много нового и интересного, и быстро переходит ко всему спектру фич этого раздела.
Сергей-4030> И что? Я не понял, что с того? pragma есть указания компилятору, pragma ничем концептуально не отличается от задания ключей компилятора. Или вы и с этим несогласны? С этим несогласен стандарт. Ещё раз повторяю: реакция на #pragma является implementation-defined. Компилятор волен делать что угодно. В случае OpenMP #pragma являются расширением языка. Можете считать их операторами.
Вот как выглядит Ваш код портированный (за 10 минут) на C++/OpenMP:
code text
static int solve(const int size, bool checkTransitions) {
setLimits(size, false, checkTransitions);
known_positions.clear();
solution_pointer = 0;
#pragma omp parallel for num_threads(size)
for (int i = 0; i < size; i++) {
Solution s(i);
s.arrange();
}
return solution_pointer;
}
code text
#pragma omp critical
{
if ((!CHECK_TRANSITIONS) || (known_positions.end() == known_positions.find(desk))) {
addKnownPosition(desk);
solutions[solution_pointer++] = desk;
result = true;
}
}
Теперь расскажите как такое сделать ключами компилятора
*А ведь ещё совсем недавно Вы издевались над Eretik'ом: "Я про С++ знаю более-менее все ... Вы же про Яву читаете из бульварных журналов"
Как выяснилось, на самом деле обе стороны достойны друг друга
Сергей-4030> Вы знаете, пока что я не знаком ни с одним Вашим проектом и потому нет у меня никаких оснований полагать, что вы можете чего-то там указывать мне с высоты вашего опыта без доказательств. Уж извините. Не извиняю. Мои проекты не имеют никакого отношения к вопросам
знания языка/платформы.
*Чисто для справки. Свой крайний коммерческий проект на C++ я выполнил ещё до принятия стандарта
Потом работал в основном с Java во всех её ипостасях. Ну а три года назад перешёл на .NET (направление и скорость развития Java перестали меня устраивать)
Сергей-4030> Но ее главная направленность - операционные системы и продукты для "десктопного" пользователя, что накладывает отпечаток. И такая направленность - отнюдь не самая распространенная, более того - вполне исключительная. Чушь. Десктопных приложений навалом, это мэйнстрим, как на массовом бытовом рынке, так и в enterprise'е.
Сергей-4030> ЗЫ А в каком направлении вообще будет двигаться показ класса? Ну-у-у, например, полагаю интересно будет показать как выглядят unit test'ы и соответствующие фрэймворки на топовой платформе.
Сергей-4030> UML нам напишете и design specifications? Ума не приложу, как это на чисто алгоритмической задачке вы будете это все показывать. Как раз вычислительные задачи и требуют самых точных спецификаций. Только не в том смысле в каком Вы их себе представляете. Слышали такие термины: "корректность", "частичная корректность", "предусловие", "постусловие", "инвариант", "сходимость", "устойчивость" ???
Учитесь читать.
Это сообщение редактировалось 19.07.2008 в 23:39