![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
mad123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.1.2011 Репутация: нет Всего: нет |
Добрый день, скажу сразу что потоки вижу в первые, а очень нужно.
Приведение слов к общему виду по определенным условиям. lib - pthread.h 1) Выполнить индивидуальное задание последовательным алгоритмом; 2) Выполнить индивидуальное задание параллельным алгоритмом (обязательно использовать для разграничения общих ресурсов системные объекты синхронизации); 3) Сделать анализ быстродействия последовательного и параллельного алгоритмов. |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
OpenThreads - хорошая, годная С++'ая обертка вокруг pthread. Юзаю во многих проектах, проблем не наблюдал
![]() |
|||
|
||||
mad123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.1.2011 Репутация: нет Всего: нет |
мне сказали - что это нужно сделать используя только "pthread.h" |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
Код открыт - сделай по образу и подобию
![]() |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: нет Всего: 50 |
http://www.linuxdocs.org/HOWTOs/C++Programming-HOWTO-24.html
http://publib.boulder.ibm.com/iseries/v5r2...is/rzah4mst.htm http://www.yolinux.com/TUTORIALS/LinuxTuto...sixThreads.html http://sites.google.com/site/informationne...ead-programming http://www.scribd.com/doc/7366904/POSIX-Threads-Programming http://books.google.ru/books?id=_xvnuFzo7q...six&f=false http://cs.pub.ro/~apc/2003/resources/pthre...de/document.htm http://www.media.osaka-cu.ac.jp/~k-abe/PTL/ ![]() |
|||
|
||||
mad123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.1.2011 Репутация: нет Всего: нет |
Помогите хоть что в задании нужно сделать.
"Приведение слов к общему виду по определенным условиям." |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: нет Всего: 50 |
Походу ты ошибся разделом ))
Это сообщение отредактировал(а) Alca - 12.5.2011, 18:07 |
|||
|
||||
mad123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.1.2011 Репутация: нет Всего: нет |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
фриланс тебе нужен ;)
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
||||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
Юзаю Thread, Mutex, Condition. Собственно, классов всего четыре, последний это Barrier. Вот его не юзал, не было подходящей задачи. Этот Это сообщение отредактировал(а) rsm - 12.5.2011, 21:01 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
полазал я по хранилищу.. и вы знаете, обнаружил, что самый "новый" файл, редактировался -
к тому же, либка, полностью антипаттерная ;) т.е. я не могу юзать ее трэд или кондишн и свой мьютекс ![]() вы ее и правда юзаете? если да - скажите, _во_имя_чего_?! Это сообщение отредактировал(а) boostcoder - 12.5.2011, 21:06 |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
А разве в ней есть что-нибудь, что ещё можно было бы удалить? ![]() Без комментариев, т.к. не пробовал делать ничего подобного. Истинно говорю ![]() а) она предельно "прозрачная" и лёгкая в использовании; б) объём кода минимален, что весьма удобно когда нужна статическая линковка; в) и, главное, она просто работает ![]() |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Что она дает в сравнении со стандартными функциями, ?(кросплатфоры не в счет ) кроме того что "руками не модно" ? |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
очень "конкретное" задание - по определенным условиям... а вообще-то над этой задачей бьются не худшие умы Google, Yandex, etc. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
для этого есть boost.thread. теперь уже std.thread ;) |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Про велосипед слышу лет 10 конкретный пример можно , на чистом С vs framework , |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
||||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Да нет , Я счас подошел к этапу когда начинаешь задумываться , может лучше всего писать руками? в командной строке без всяких там добавок , которые якобы бы сокращают время разработки , Суть вопроса в следуещем, если слева написать реализацию на родном C , а справа при помощи фрэйворка и сравнить , размер кода больше а где выгода ? любой фраймворк вызывает СreateThread() где велосипед , по этой логике printf, malloc и т,д - тоже велосипед ![]() на С пишут только пенсионеры ?? ![]() |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
со времён царя гороха известно, что чем больше кода, тем больше вероятность ошибки. в нормальном framework'е потоки сделаны классами с одной абстрактной виртуальной ф-цией run или Execute. В деструкторе своего наследника принято вызывать ф-цию wait или WaitFor этого класса. Есть ф-ции потокобезопасной передачи данных для отрисовки в GUI... Да много ещё чего. Если ты напишешь свой велосипед (при условии, что ты будешь делать его не только для себя, а и для людей), то ты получишь то же самое. Тогда вопрос: зачем тратить своё время/силы/деньги ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
тогда почему ни Виндус ни Линукс не пишут на С++ ? по крайне мере ядро Это сообщение отредактировал(а) sergioK1 - 14.5.2011, 14:08 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
Сорри, не знал, что ты пишешь ядро Линукса. В этом случае - да, нелогично писать на фреймворках. It was a sarcasm, если чо -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
sergioK1 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Я пишу на limited resource. для PC лучше фреймворк, для limited resource - нет, Свой будет быстрее и занимать меньше кода , даже на PC, ты точно знаешь что там есть , это просто мода cравни код в обоих случаях и покажи разницу , в любом случае - фрэйворк должен быть стандартным, Это сообщение отредактировал(а) sergioK1 - 14.5.2011, 14:25 |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
мдя.. буст пока не стандарт. но все к тому идет ![]() Добавлено через 2 минуты и 23 секунды тебе не очевидно что с++ код предоставляет больше возможностей и безопасности? ;) или возьмешься доказывать обратное? примеры сравнения показать? |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
[QUOTE=boostcoder,14.5.2011, 13:53]
Да знаю Я про это все общие слова, это скорей защита от дураков ![]() Если взять с код и поменять на сpp, и положить в нутрь класса безопасности не будет, если в этом классе граммотно обработать кртические моменты плюс грамотная структура классов ,то да это С++ лучше , зачем тебе непонятно какой-то фрейворк, который так и делает ,и еще делают много чего, но тебе это не нужно, неделю убьешь не его изучение, потом выйдет новая версия не факт что совместимая, если Ты сам себе эту безопастность можешь обеспечить потратив час-два, пусть даже день работы , при этом сэкономив память ,скорость и размер бинарника. в С++ достаточно подвохов, с индусами не приходилось работать ? Это сообщение отредактировал(а) sergioK1 - 14.5.2011, 17:02 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
sergioK1, IMHO что писать на Java в микроконтроллер гигабитного маршрутизатора, что ваять на чистом Си интерфейсную программу даже на КПК (я не говорю уж о ПиСи) - дело неблагодарное. Поэтому в каждом отдельном случае нужно выбирать между
и -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
так а разве утверждал что на С надо писать GUI или роутэр на Жаве? ты сам завел про фрэймворк , сказав что писать на native - велосипед, не приведя при этом аргуметов,а лишь эмоции , С моей точки зрения пользовать какие попало фрейворки - не хорошо, либо пользовать стандард, либо самому писать, и релизовывать только то что нужно, есть еще вариант наследовать и перегружать, но с умом, Это сообщение отредактировал(а) sergioK1 - 14.5.2011, 18:08 |
|||
|
||||
boostcoder |
|
||||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
т.е. это в твоем понимание весь с++ ? оО
у меня последний вопрос: тебе гадков скока? 13-14?
ну да.. не больше 13ти. дискуссия закончена. Добавлено через 2 минуты и 32 секунды а "работа", это то, чем ты занимаешься в кружке "умелые ручки" ? |
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Да да. Помню я этот этап у себя - он начался сразу после написания cout << "Hello world!" << endl; на первом курсе института. Так как читать кучу книжек надо было, а лень и денег не было (я был студентом), да и интернет тогда был совсем другой и стоил других денег (кстати, у меня его не было, а тот что в институте был - 20 бит (именно бит) в секунду). Ведь значительно проще написать все самому! Ну что же там такого сложного?!? В итоге я кучу лет занимался велосипедостроительством на билдере. А потом мне открыли глаза на С++. И я изучил и шаблоны, и стандартную библиотеку, и буст... И понял, что я кучу лет просто потерял. |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
http://thread.gmane.org/gmane.comp.version...643/focus=57918 - здесь я с Линусом согласен С++ и фрейвоки, ускоряют процес разработки, но это происходит за счет качества. Тогда уж лучше писать на Java или C#. Какой смысл от С++? PS boostcoder ты бы все-таки выражения выбирал, когда с людьми общаешься. Ведешь себя как быдло. -------------------- undefined |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: нет Всего: 50 |
Ну ты даешь ![]() Добавлено через 33 секунды Если скорость не критична, то можно и на жабе ваять |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
||||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
на основании этого и не только.. -------------------- undefined |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
||||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
-------------------- undefined |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
fish9370, тут предложение поступило..
тебе нужно срочно спрятаться от мира сего, в котором обитают такие как я. дабы не быть травмированной твоей нежной психике и самолюбию. Добавлено через 59 секунд что? видеть как кто-то реально жжет? да. насмотрелся. ты не один такой. |
|||
|
||||
Sahab |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.9.2009 Репутация: нет Всего: 3 |
эмокодыры отакэ?
|
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
boostcoder, ну ты и быдло..
аста ла виста бейби.. PS можете банить меня.. -------------------- undefined |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
не, Модераторы, не надо(да и не за что)! это же весело! |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Так вот, это я к тому, что код на С++ ничуть не менее качественный, чем аналогичный на другом языке программирования. Просто иногда люди лишь только думают, что пишут на С++. И именно они создают тот самый код, за который все так критикуют С++. |
||||
|
|||||
bsa |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Под limited resource ты понимаешь микроконтроллер? Я пишу код под МК, я попробовал использовать С++ и Си. Код получался абсолютно одинаковым (правда, я не использовал шаблоны и std:: - задача довольно специфичная, поэтому стандартные вещи не нужны), хотя я использовал классы и пр. Но в итоге я выбрал С. Мне показалось, что те преимущества, что мне дает С++, не так значительны, как простота кода.
Рассмотрим простой пример безопасного мьютекса. У мьютекса существует два обязательных метода - захватить и освободить. В начала критической секции мы захватываем мьютекс, а в конце освобождаем. Но в случае, если у нас внутри критической секции происходит ветвление и выход из нее в нескольких местах, то необходимо в этих нескольких местах проставить освобождение мьютекса. Когда пишешь код ты можешь и не забыть, но при поддержке года через 2, эту фигульку ты можешь случайно и не заметить. Теперь делаем как умные люди еще класс Locker, конструктор которого захватывает указанный мьютекс, а деструктор освобождает. Теперь нам необходимо только создать в начале критической секции объект класса Locker и передать ему мьютекс. Как только мы выйдем из блока, то объект будет автоматически уничтожен, а мьютекс разлочен. Усложнения на уровне результирующего машинного кода никакого - компилятор просто подставит необходимые библиотечные вызовы для захвата/освобождения мьютекса в местах создания/уничтожения Locker'а. Никакой безопасности внутри этих классов нет! Они дают тебе безопасность за счет того, что ты не должен заморачиваться там, где заморачиваться не должен.
час-два на создание, день-два на отладку, месяц-другой на поиск глюков и портирование на другую ОС... Кстати, прежде чем писать свое, рекомендуется изучить чужое, дабы знать подводные камни и не наступать на известные грабли.
|
||||||||
|
|||||||||
fish9370 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
я не против, выражения мнения, будь это boostcoder или кто-либо еще, мне не понравилась сама форма. Давай не будем больше об этом. по теме:
впринципе, Линус не говорит, что он не мощный, он даже восхищается библиотекой boost, но он критикует С++ и в частности boost, как раз за сложность. Где взять множество таланливых программистов и как проверить их качество? Если в комерческой организации такая возможность есть, на этапе приема на работу, то как это сделать в открытом проекте? Наверно одной из причин этого является то что в линуксе все еще так популярен C. И не с проста, в крупных проектах на С++ в "code style" (тот же google), ограничивают некоторые возможности С++ (это касается шаблонов, обработки исключений и много чего еще). что касается меня, я долго искал себя пробовал разные языки программирования и к 27 годам я понял, что я никуда не сдвинулся.. и я жалею, что не пришел в линукс раньше и не познакомился с ядром и с великолепным кодом Asterisk (кстати, я считаю, структуру этой программы нужно преподавать в университетах, это поистине шедевр).. и вот уже три года как я наслаждаюсь тем, что делаю и тем, что у меня получается.. мой код перестал глючить и он делает именно то что задуманно.. но я не категоричен, иногда от С++ отказываться нельзя, наверно у него есть своя ниша.. единственное приемущество С++ над С это скорость разработки.. но если это открытый проект и ты никуда не торопишься, лучше это сделать на С. -------------------- undefined |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Это не главное преимущество. Если ты владеешь языком, то ты и на С будешь создавать код с не меньшей скоростью. Другое дело, что на С++ ты допустишь меньше глупых ошибок из-за невнимательности. Но, только при том условии, что ты знаешь С++ и владеешь им. В противном случае, ты наделаешь кучу более серьезных ошибок - ошибок проектирования.
|
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
а можно и мне показать этот участок кода? очень интересно.. -------------------- undefined |
|||
|
||||
sergioK1 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
это когда весь RAM- 300K например, что в твоем понимании знать С++ ? |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
fish9370, не помню. Но код был точно в ядре. Писал его кажется китаец.
Добавлено через 3 минуты и 11 секунд У моего МК ее 16 КБ. ![]() К сожалению, сформулировать не могу. Но есть подозрение, что даже я знаю его недостаточно. ![]() |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
чем компилируешь ? |
|||
|
||||
reversecode |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.5.2011 Репутация: нет Всего: нет |
fish9370,
как вы смешно говорите про линуз про астериск про с++ итд)) жаль что к 27 годам вы так и не освоили даже гугл ну что ж начнем с основ работы с гуглом набираете в строке поиска гугла
жмете поиск первую ссылку осилите открыть? ps boostcoder еще тот человек)) но его позиция понятна, он фанат буста Это сообщение отредактировал(а) reversecode - 17.5.2011, 17:01 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
||||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Не можешь ты так сделать, не всегда работает это , а если работает на С++ то на С тоже , либо не там ни там , Деструктор ты должен вызывать явно, если есть гарбич коллектор то можно нет, но лучше да Обьест не уничтожиться - толька ссылка пропадет не важно С++ это или нет, Ты понятия не имеешь твоим процессом ситема сейчас займется или нет , P.S. выход из критической секции - признак плохого дизайна, читай Джешуа Блох, Это сообщение отредактировал(а) sergioK1 - 17.5.2011, 23:56 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
||||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
Мммм... Pure C vs True C++. Пойду-ка я, это,
![]() -------------------- |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
||||
|
||||
svlary |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 8.9.2009 Репутация: 4 Всего: 4 |
Это утверждение вызывает у меня очень большие сомнения.... В самом деле, давайте вспомним, ради чего, собственно была затеяна вся эта суета с ООП вообще и С++ в частности ? Дело в том. что язык С (главным требованием при проектировании которого была ЭФФЕКТИВНОСТЬ реализации) обладает кучей принципиально неустранимых недостатков с точки зрения НАДЕЖНОСТИ. К примеру :
![]()
Я уж не говорю, что если в языке С, для выяснения назначения функции sin() достаточно набрать man 3 sin, то в языке С++, для выяснения назначения метода x.sin() необходимо перерыть ВЕСЬ ИСХОДНЫЙ КОД программы, что бы высянить, какого класса объект x и в каком именно уровне дерева классjв реализован метод sin()!!! За одно это следовало бы просто запретить использование языка С++ под страхом программирования всю оставшуюся жизнь на BASIC !!! ![]() Ну и так далее ... Я понимаю, что далеко не все со мной согласятся, но (IMHO) С++ - на редкость неудачная реализация на редкость неудачной идеи. Поясняю :
|
|||
|
||||
kemiisto |
|
||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
Тут надо всё же оговорить, что главным требованием была потенциальная возможность писать системное программное обеспечение под конкретное аппаратное обеспечение. То есть эффективность на конкретной аппаратной платформе.
Нет, так а такой задачи и не стояло.
Не было такой идеи. Была идея просто встроить ООП в сишечку для собственных нужд. А так, да, люто-бешено плюсую! ![]() -------------------- |
||||||
|
|||||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
я не знаю сколько тебе лет, но ты читаешь не внимательно, не осилил даже мой пост.. из него ясно, что мне 30.. ![]() -------------------- undefined |
|||
|
||||
bsa |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
![]() ![]() Прежде чем читать про "дизайн", почитай про язык С++. Судя по твоим высказываниям ты его совершенно не знаешь. Типа "не читал, но осуждаю".
![]() |
||||||||||||||
|
|||||||||||||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
sergioK1 |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
[QUOTE=bsa,18.5.2011, 10:44]
АAAAA Я то понял про про new без delete. ![]() Это сообщение отредактировал(а) sergioK1 - 18.5.2011, 12:28 |
||||||
|
|||||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
Что, правда? ![]() -------------------- |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
1) Это конечно правда, но проблема решается локализацией. Есть API, есть отлаженое ядро программы, есть модули. Все разграничивается на довольно небольшие составные части.. Этот подход мне кажется наиболее удачным.. Этот подход используется в проектах Asterisk, Apache, PHP, всех не перечислишь.. В Си выходит довольно прозрачно, и в "user mode" отлаживается довольно быстро (субъективно).. Если добавить в критических местах некую функцию по типу ast_log(LOG_ERROR, "poll failed: %s\n", strerror(errno)), то поиски бага сокращаются многократно.. (вопросы синхранизации потоков не рассматриваю - это отдельный вопрос) 2) Использование 'c' и 'h' файлов оговаривается на уровне проекта. Т.е. еще на входе в проект первым делом вас тыкают в "Coding Style, Coding Guideline", где все четко прописано. Если ты сам инициатор проекта, то думаю начать нужно с этого. 3) Это я бы неряшливостью не назвал, скорее ньюансы. Из-за пары ньюансов списывать весь язык? А в каком языке их нет? 4) Это приводит к ошибочному использованию, только при плохой архитектуре.. Все нужно делать с умом.. Часто память выделяется локально, в стеке.. Cтандартные вызовы malloc, calloc, редко вызываются непосредственно, обычно их заворачивают в более умные структуры/функции.. Это сообщение отредактировал(а) fish9370 - 18.5.2011, 12:44 -------------------- undefined |
|||
|
||||
reversecode |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.5.2011 Репутация: нет Всего: нет |
fish9370,
ну простите великодушно) я не знал что к своим 30 годам вы кроме гугла еще и красоту С++ не поняли и рассказываете про какойто быдло код линукса и астериска, это просто смешно)) с++ замечательно можно использовать и в ядре, с оговорками но можно и яркие примеры это та же самая виндовс ос, в которой как минимум win32k.sys GUI многие части писаны на С++ некоторые драйвера в винде тоже на С++, и ничего)) а торвальдс видимо как и вы, с++ не очень понял так же удачный проект с++ в ядре есть пример отладчика syser ну итд я просто пролагаю вы вообще не поняли как и где правильно использовать с++ и отчаявшись к своим 27 или 30? годам сползли на быдло код С, и теперь рассказываете как это хорошо С в открытых проектах пойдите это расскажите тогда KDEешникам или Кутешникам, что им стоит переписать их проекты на чистый С ;))) kemiisto, ))) и не говори... как уже утомили эти холивары |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
ты не достоин моего прощения.. гений детектед ![]() Это сообщение отредактировал(а) fish9370 - 18.5.2011, 14:32 -------------------- undefined |
|||
|
||||
maint |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
кретин научился писать две строчки да плюсах. И уже считает себя выше всех. Это бывает. Торговать в магазин менеджером пойдет. Дурь в уши людям сливать |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
какой замечательный спор ни о чем
![]() сейчас работаю в команде над громадной системой, написанной на С++ кроме нас разработку ведут и другие команды, т. е. процесс разработки распределенный если бы там был С, воцарил бы хаос ![]() не в плане того, что С плох, а в том, что С++ более строг и заставляет придерживаться определенных правил склоняюсь к мнению, что для очень больших систем, разрабатываемых распределенно, С++ подходит больше -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
больше чем asterisk? -------------------- undefined |
|||
|
||||
reversecode |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.5.2011 Репутация: нет Всего: нет |
maint,
еще! еще! больше жару! поругайте меня)) укажите мне какой я плохой разработчик или еще чего нибудь, а то скучно ) fish9370, хватит разводить здесь башогр))) астериск это проект выходнго дня если для вас астериск это большой проект, тогда вам еще лет 30 это как минимум надо работать в сфере программирования |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Java еще более строг , так что большие системы лучше писать на Java? Для больших систем нужна архитектура , а язык выбирают в зависимости от задачи , и вкусов програмистов, Есть вещи которые мне проще сделать на С чем на Java , или С++ есть наоборот, Кто-то может сказать все с тосностью наоборот, не потому что он лучше меня или хуже ,а потому что у каждого свой опыт ,привычки, видение и понимание системы и т,д, That's it, разговор ушел в никуда, что нормально для форумов, ![]() |
|||
|
||||
svlary |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 8.9.2009 Репутация: 4 Всего: 4 |
Разумеется! Чем и замечательна наша работа (программирование), что решить можно любую проблему ! Вопрос только - какой ценой... К примеру, по поводу 'c' и 'h' файлов.... Можно написать стандарт предприятия на предмет того, как и что и где писать, можно подробнейшим образом инструктировать всех принимаемых на работу, можно возложить на тестеров обязанность проверять соблюдение кодерами этого стандарта... Но, сравните это с тем, как данная проблема решается, к примеру, в языке Modula-2 : Любой программный модуль состоит из двух частей :
Аналогично можно сказать и про другие проблемы С, которые с радостным помахиванием хвостиком "обратная совместимость" дружно влились в С++. ![]() |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
svlary, к 30 годам, я четко определился, чем я хочу заниматься.. конечно же я не отступлюсь.. я безгранично верю в силу Си..
но мне интересно посмотреть на Modula-2, я обязательно ознакомлюсь с ним.. если он тебе так нравится, наверно в нем что-то есть.. -------------------- undefined |
|||
|
||||
sergioK1 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Я тоже , когда виже такое
очень легко читаемый код ![]() |
||||
|
|||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
да
речь про С vs. C++ причем не про низкоуровневые системы типа ядра ОС -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
в астере, есть модуль chan_sip.c, в нем более 30 тысяч строк кода, у вас тоже есть такие файлы? или у вас проект растет в ширь, а не в глубину? так же было бы интересно узнать какую систему контроля версий вы используете? и какая среда разработки? так же интересно, что у вас получается на выходе, один большой файл или куча маленьких? какие вы используете библиотеки? и само-собой интересно на какую платформу вы ориентируетесь? Это сообщение отредактировал(а) fish9370 - 19.5.2011, 12:08 -------------------- undefined |
|||
|
||||
MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
за 30 тысяч убил бы ;) самый большой файл, который я видел у нас порядка 13к строк
IBM clearcase/clearquest eclipse в основном
много и не маленьких qt для gui linux -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
MAKCim, спасибо за ответы
в астере таких модулей несколько, я сам их боюсь.. ) -------------------- undefined |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Паскаль видел? По сути тоже самое, да и автор тот же. На сколько я понял, есть еще более продвинутый язык - Oberon. Его в свое время активно kemiisto продвигал. Добавлено @ 22:33 И правильно делаешь. Имхо, гигантские файлы это признак дурного тона. Так как читать их ну просто нереально. Особенно, не имея возможностей мощных сред разработки по поиску функций Это сообщение отредактировал(а) bsa - 24.5.2011, 23:44 |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 2 Всего: 1 |
doxygen в астере в качестве документации.. -------------------- undefined |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
плохой вариант. Если я хочу найти и исправить багу, то мне дока по хорошему не нужна. |
|||
|
||||
igsilya |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.9.2009 Репутация: нет Всего: нет |
Я в принципе не новичок, но сталкиваюсь с подобным впервые.
Есть большой модуль в котором есть много глобальных переменных, чтоб от них избавится потребуется очень много времени и сил. Нужно использовать функцию из этого модуля в другой программе. Эта программа многопоточная (использую pthread) => глобальные переменные того модуля будут использоваться всеми потоками сразу(что нас не устраивает). Требуется, не отказываясь от потоков в пользу процессов, локализовать глобальные переменные того модуля для каждого потока.(каждому потоку по своему экземпляру). Надеюсь получилось описать проблему. Может кто сталкивался с подобным? Заранее спасибо. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
а чё вы тут столько мусолите? уже 6 страниц оО
|
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
-------------------- |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
kemiisto, за то, что прочел первый раз неправильно. теперь всегда буду ошибки делать. Исправил.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |