Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.27;
Скачать: CL | DM;

Вниз

Почему многопоточное программирование на 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;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.016 c
11-1209885307
SPeller
2008-05-04 11:15
2009.12.27
KOLTIFF.ImageAsBitmap экспортирует неправильный битмап


2-1257513309
Бульбаш
2009-11-06 16:15
2009.12.27
Если позволите вернусь к теме обсуждения


1-1231775144
Игорь_Залозных
2009-01-12 18:45
2009.12.27
Вывод очень длинной строки


2-1257739169
Андрей Смирнов
2009-11-09 06:59
2009.12.27
Как правильно передать массив URL в Функцию (WinInet)


1-1229953346
tipman
2008-12-22 16:42
2009.12.27
Использование общих переменных в различных потоках