Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Вниз

Почему многопоточное программирование на Delphi   Найти похожие ветки 

 
GDI+   (2009-10-23 23:08) [0]

почти не используется?

В чем причина однопоточности большинства Delphi приложений - в низкой квалификации программистов или специфике ПО.

Это я к тому что смысл покупать домой 4-ядерные процессоры, если большинство программ не смогут использовать более одного ядра?


 
Sergey Masloff   (2009-10-23 23:10) [1]

Видимо, причина в том что большинству программ многопоточность на фиг не нужна, что не Delphi что на це с плюсами


 
@!!ex ©   (2009-10-23 23:13) [2]

Потому что квалификация батоно кидателей не позволяет им писать корректные многопоточные приложения.


 
antonn ©   (2009-10-23 23:17) [3]


> Это я к тому что смысл покупать домой 4-ядерные процессоры,
>  если большинство программ не смогут использовать более
> одного ядра?
>

смысл в том, чтобы без падения производительности запустить 4 копии программ использующие 1 ядро :)


 
TUser ©   (2009-10-23 23:18) [4]

дома большинство прог не на делфи

и там 2 ядер - за глаза сегодня, имхо


 
turbouser ©   (2009-10-23 23:26) [5]


>
> GDI+   (23.10.09 23:08)
>
> почти не используется?
>
> В чем причина

Где надо - многопоточно... где не надо - не многопоточно..
Мда.. Кааждый овощь -- и далее по тексту


 
Игорь Шевченко ©   (2009-10-23 23:27) [6]

На многоядерном процессоре и однопоточные приложения будут работать быстрее. Они, как минимум, меньше будут конкурировать за процессор с системными потоками.


 
Loginov Dmitry ©   (2009-10-23 23:29) [7]

4-ядерный проц покупать есть смысл, если разрабатываешь многопоточное приложение на Delphi.
Тестировать удобно :)


 
Суслик_   (2009-10-24 00:10) [8]

вот есть у меня транспорт на именованных каналах - принципиально однопоточный.

ты поди такой же скорости добейся в многопоточности.


 
Сергей М. ©   (2009-10-24 00:13) [9]


> Почему многопоточное программирование на Delphi.. почти не используется?


Это на каком же заборе такое написано ?


 
Игорь Шевченко ©   (2009-10-24 00:22) [10]

Суслик_   (24.10.09 00:10) [8]


> ты поди такой же скорости добейся в многопоточности.


Если добьюсь, что будет ? :)


 
Суслик_   (2009-10-24 00:32) [11]

я тебе, Игорь, подарю пирожок.
с рисом.


 
oxffff ©   (2009-10-24 00:34) [12]


> Суслик_   (24.10.09 00:32) [11]


Готовь и для меня с мясом.


 
Германн ©   (2009-10-24 01:24) [13]


> Если добьюсь, что будет ? :)

Посулят и обманут.
:)


 
boa_kaa ©   (2009-10-24 01:42) [14]

вот я дураг... не помню, когда последний раз однопоточные делал...


 
Германн ©   (2009-10-24 01:51) [15]


> boa_kaa ©   (24.10.09 01:42) [14]
>
> вот я дураг... не помню, когда последний раз однопоточные
> делал...
>

Вот теперь и думай. Дураг ты или придураг?
:)


 
boa_kaa ©   (2009-10-24 02:57) [16]


> Германн ©   (24.10.09 01:51) [15]

дык думаю, думаю же...


 
Германн ©   (2009-10-24 03:02) [17]


> boa_kaa ©   (24.10.09 02:57) [16]
>
>
> > Германн ©   (24.10.09 01:51) [15]
>
> дык думаю, думаю же...
>

Вот и думай в следующий раз, когда захочется высказаться во втором часу ночи по Москве.
:)


 
boa_kaa ©   (2009-10-24 03:11) [18]


> Германн ©   (24.10.09 03:02) [17]

што-то я не в теме :(


 
Riply ©   (2009-10-24 03:42) [19]

> Почему многопоточное программирование на Delphi
> почти не используется?

Ну и неправда ваша ! Почти все проекты на Delphi многопоточны.
Достаточно использовать что-нибудь типа OpenDialog :)


 
Омлет ©   (2009-10-24 03:45) [20]

> [19] Riply ©   (24.10.09 03:42)

OpenDialog в отдельном потоке??


 
Riply ©   (2009-10-24 03:47) [21]

> [20] Омлет ©   (24.10.09 03:45)
> OpenDialog в отдельном потоке??

Нет.
Просто диалоги такого типа, тебя не спрашивая,
создают парочку нитей, чтобы жизнь медом не казалась :)


 
Германн ©   (2009-10-24 03:49) [22]


> Riply ©   (24.10.09 03:42) [19]

Ну хоть в четвёртом часу ночи, Саша таки зашла на ДМ.
Привет, Саша.
Рад, что Саша хоть иногда, но находит время для этого форума.
Без Саши, на форуме чего-то не хватает.


 
Riply ©   (2009-10-24 03:53) [23]

> [22] Германн ©   (24.10.09 03:49)
> Привет, Саша.

Здравствуйте - здравствуйте, полуночник :)

> Ну хоть в четвёртом часу ночи, Саша таки зашла на ДМ.

На самом деле я захожу постоянно.
Просто пишу редко.


 
Омлет ©   (2009-10-24 03:59) [24]

> [21] Riply ©   (24.10.09 03:47)
> Просто диалоги такого типа, тебя не спрашивая,
> создают парочку нитей, чтобы жизнь медом не казалась :)

Ну, это, наверное, уже Windows. К Delphi как бэ не относится.


 
Германн ©   (2009-10-24 04:03) [25]


> Riply ©   (24.10.09 03:53) [23]
>
> > [22] Германн ©   (24.10.09 03:49)
> > Привет, Саша.
>
> Здравствуйте - здравствуйте, полуночник :)
>
> > Ну хоть в четвёртом часу ночи, Саша таки зашла на ДМ.
>
> На самом деле я захожу постоянно.
> Просто пишу редко.
>


> Просто пишу редко.
>

И я про это.
Но не осуждаю ни в коей мере. Наслышан, что ты активно участвуешь на друг(ом)(их)  форум(е)(ах). Успехов тебе и удачи!
Просто сожалею, что ДМ тебя "пока" (я надеюсь, что только "пока") потерял.


 
Riply ©   (2009-10-24 04:09) [26]

> [25] Германн ©   (24.10.09 04:03)
> И я про это.

Неа. Дело в том, что я так и не овладела искусством отвечать на вопросы :(
Остается толко флудить, пока модераторы спят :)


 
Германн ©   (2009-10-24 04:17) [27]


> Riply ©   (24.10.09 04:09) [26]
>
> > [25] Германн ©   (24.10.09 04:03)
> > И я про это.
>
> Неа. Дело в том, что я так и не овладела искусством отвечать
> на вопросы :(
> Остается толко флудить, пока модераторы спят :)
>

Хм.
А слухи о том, что ты модератор на некоем форуме  - ложь?


 
boa_kaa ©   (2009-10-24 04:24) [28]

интересно, а Герман когда-либо спит?


 
Riply ©   (2009-10-24 04:25) [29]

> [27] Германн ©   (24.10.09 04:17)
> Хм.
> А слухи о том, что ты модератор на некоем форуме  - ложь?

Нет, не ложь.
Следить за порядком гораздо проще, чем давать качественные ответы :)


 
Германн ©   (2009-10-24 04:30) [30]


> boa_kaa ©   (24.10.09 04:24) [28]
>
> интересно, а Герман когда-либо спит?

Спит. Ручаюсь за это!

:)
> Riply ©   (24.10.09 04:25) [29]
>
> > [27] Германн ©   (24.10.09 04:17)
> > Хм.
> > А слухи о том, что ты модератор на некоем форуме  - ложь?
>
>
> Нет, не ложь.
> Следить за порядком гораздо проще, чем давать качественные
> ответы :)

И ты променяла творчество на службу!
:)
Это только шутка и не более! Не бери на душу. :)


 
Омлет ©   (2009-10-24 04:37) [31]

Женщинам нельзя модериировать, они слишком импульсивны ))


 
Eraser ©   (2009-10-24 05:35) [32]

> [0] GDI+   (23.10.09 23:08)
> почти не используется?

на чем основано это утверждение?
на делфи работать с многопоточностью куда проще, чем на c++, где все на win api вручную делать надо.


 
Григорьев Антон ©   (2009-10-24 08:37) [33]

Delphi, как и любой императивный язык, плохо подходит для распараллеливания. Например, возьмём простой цикл, который заполняет массив случайными значенями:
for I := 0 to 999
A[I] := Random(100);

Его, в принципе, можно распараллелить: разбить массив на четыре части, и каждую пусть заполняет своя нить. Только кто будет с этим возиться? Создание новой нити - это куча кода. Фокусы типа описанных в статье "Выполнение кода в потоке без выделения его в процедуру" http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1355 помогают, но не радикально. Почему, например, надо разбивать этот цикл именно на 4 нити? А вдруг у пользователя старый 2-ядерник? Или наоборот, новейший 8-ядерник?

Выход - в среде исполнения, которая может автоматически во время выполнения (а не компиляции!) определять возможность распараллеливания кода и раскидывать его по такому количеству нитей, которое оптимально для данной системы. Но для этого нужны другие ЯП: ни Delphi, ни ему подобные не дают возможности провести такой формальный анализ из-за побочных эффектов, нереентерабельных функций и т.п. Пока идеальным вариантом для реализации такой многопоточности выглядят функциональные языки. Соответствующая теория уже сущетвует, реализация, насколько я помню, тоже. Если не ошибаюсь, то Erlang (есть такой функциональный ЯП) уже умеет распараллеливать выполнение автоматически там, где это возможно. Так что существует мнение, что массовом при переходе на многопроцессорные/многоядерные системы императивные языки останутся только в узкой нише (как сейчас ассемблер), а на первое место выдут функциональные.


 
Pavia ©   (2009-10-24 10:59) [34]


> Delphi, как и любой императивный язык, плохо подходит для
> распараллеливания. Например, возьмём простой цикл, который
> заполняет массив случайными значенями:for I := 0 to 999
> A[I] := Random(100);Его, в принципе, можно распараллелить:
>  разбить массив на четыре части, и каждую пусть заполняет
> своя нить. Только кто будет с этим возиться?


Ну так OpenMP видел? Нормально распараллеливается в пару строк.


 
Аноним   (2009-10-24 13:49) [35]


> чем на c++, где все на win api вручную делать надо

ога :-D
в ц++ же никак нельзя использовать буст и прочие библиотеки
не несите чушь


 
DVM ©   (2009-10-24 13:51) [36]


> Почему многопоточное программирование на Delphi
>
> GDI+   (23.10.09 23:08)
>
> почти не используется?

Почему не используется? Мною например очень активно используется.


 
oldman ©   (2009-10-24 13:52) [37]


> GDI+   (23.10.09 23:08)  
> почти не используется?
>
> В чем причина однопоточности большинства Delphi приложений
> - в низкой квалификации программистов или специфике ПО.
>
> Это я к тому что смысл покупать домой 4-ядерные процессоры,
>  если большинство программ не смогут использовать более
> одного ядра?


в огороде бузина , в киеве дядька...

да кто же тебе сказал, что разные потоки пойдут по разным процам?


 
AlexDan ©   (2009-10-24 20:35) [38]

> Германн ©   (24.10.09 04:17) [27]
> А слухи о том, что ты модератор на некоем форуме  
интересно на каком некоем?)


 
antonn ©   (2009-10-25 00:47) [39]


> интересно на каком некоем?)

например sources.ru :)


 
Германн ©   (2009-10-25 01:18) [40]


> antonn ©   (25.10.09 00:47) [39]

Я даже хотел предложить спросить это именно у тебя, но поленился. :)


 
ZeroDivide ©   (2009-10-25 01:22) [41]


> Это я к тому что смысл покупать домой 4-ядерные процессоры,
>  если большинство программ не смогут использовать более
> одного ядра?


А мои программы и одно-то ядро не нагружают, а если и нагружают, что редко, то каким-нить линейным вычислением, которое неразмногоядеришь.


 
Eraser ©   (2009-10-25 01:57) [42]

> [35] Аноним   (24.10.09 13:49)

угу, только вот во всех исходниках на c++ из тех, которые я видел (видел я не мало) ни в одном не использовались какие-либо библиотеки для многопоточности, везде были самописные костыли с CreateThread, кто во что горазд.


 
antonn ©   (2009-10-25 02:01) [43]


> Германн ©   (25.10.09 01:18) [40]
>
>
> > antonn ©   (25.10.09 00:47) [39]
>
> Я даже хотел предложить спросить это именно у тебя, но поленился.
>  :)

а я вообще то думал на винград, и потом уже полез смотреть :)


 
GDI+   (2009-10-25 03:13) [44]


> Eraser ©   (24.10.09 05:35) [32]
>
> > [0] GDI+   (23.10.09 23:08)
> > почти не используется?
>
> на чем основано это утверждение?
> на делфи работать с многопоточностью куда проще, чем на
> c++, где все на win api вручную делать надо.


wxThread. Или если нельзя использовать wxWidgets, у меня своя объектная обёртка есть.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.008 c
2-1257668589
Zheksonz
2009-11-08 11:23
2009.12.27
XPManifest, цвет компонента


2-1257779059
Jaroslight
2009-11-09 18:04
2009.12.27
Среднее значение показателей типа TTime


15-1256481351
POOP
2009-10-25 17:35
2009.12.27
Погрешность решения


1-1230031610
zulus5
2008-12-23 14:26
2009.12.27
PopurMenu в MDIChild


11-1192910949
Dodfr
2007-10-21 00:09
2009.12.27
ExptIntf.dcu not found





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский