какой ЯП больше подходит для многопоточности?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by оlbaneс, 30 Jan 2010.

  1. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,379
    Likes Received:
    1,095
    Reputations:
    356
    скажем к примеру спамер или типа того. на каком популярном ЯП это будет проще и дешевле сделать?
     
    _________________________
    3 people like this.
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    c# наверное
     
    _________________________
    1 person likes this.
  3. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Если собрался покупать то тут не важно на чем реализовано, а скорее важно как и под какую платформу.
    Если собрался сам писать, то пиши на том что лучше знаешь и опять же зависит от платформы под какую собрался писать, я бы порекомендовал джаву или питон, а вообще дело вкуса (мб кому то на асме удобно =) ).

    п.с. название темы немного некорректно ибо многопоточность реализована практически во всех ЯП и нету никакого смысла затачивать под нее определенный язык )
     
    1 person likes this.
  4. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    тоже считаю c#. копай namespace Threading.
     
  5. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,379
    Likes Received:
    1,095
    Reputations:
    356
    нет, я не писать.
    мне так по отзывам казалось, что перл рулит.
     
    _________________________
  6. Retimiled

    Retimiled Banned

    Joined:
    23 Dec 2009
    Messages:
    110
    Likes Received:
    17
    Reputations:
    0
    нет языка который рулит в многопоточности.... затачивали же для этого "GO" и другие типа Erlang но чегото они тяжко приживаются!
     
  7. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    так что перл бы тебе подсказали в другом разделе.

    а тут да, c#, или (о боже!) делфи.
     
  8. Tigger

    Tigger Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    Kaimi кодит на перле, а тоже посоветовал C#.

    Хотя я тоже больше за С# )
     
  9. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    Если интересует "проще и дешевле", то зависит только от кодера, который этим будет заниматься.
     
  10. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    C#, Java, для твоей цели лучше даже Java, т.к поставил на сервер (*NIX или Win - неважно), запустил и забыл.
     
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вообще самую большую скорость тебе дадут тока те языки которые напрямую работают с функциями системы (если корректно написано всё).
    Но тут уже будет всё зависеть от платформы. Если не нужна многоплатформенность то мне кажется Си тут подойдет очень хорошо.
    Темболее если дело связано с сетью, то можеш не думать про язык. Потому что скорость сети полюбому меньше скорости проца. Другое дело гемор писать всё. Языки типа явы и шарпа дают тебе сразу много возможностей без лишних трудностей. Но за это ты будеш платиться скоростью.
     
    1 person likes this.
  12. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,379
    Likes Received:
    1,095
    Reputations:
    356
    в том же разделе и пхп ;)
    интересно, что нерезус скажет. видишь какой разброс интересный получился - квазар вон яву советует. меня интересует чтобы было много, очень много потоков.
     
    _________________________
  13. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 оlbaneс а зачем тебе потоки? Если спам, то быстрее через неблокируемые сокеты делать всё. И потом для обработки ставить по 2 потока на 1 ядро проца.

    Для примера. Писал софт для коннекбек прокси. который на 4-х ядернике запускал 8 потоков. И он держал > 40k коннектов одновременных больше не проверяли. При этом обеспечивал 20k потоков спама. (т.е. софт спамящий с 4-х серверов спамил в 5к потоков с каждого) И всё довольно нормально проходило. При этом всё работало под Win2k3 и прога написана на Си
    Так что тут особо не нужды делать потоки. да и потоки - это зло потому что не всегда они смогут дать производительность. К томуже их ограниченное кол-во может быть. Так что ток Win2k3 норм всё давало.

    Единственное что тебе подойдет так это тока:
    1) небольшое кол-во потоков для работы с сетью с основой на неблокируемых сокетах
    2) относительно не большое кол-во потоков для генерации пакетов отправки.
    т.е. чтото типа
    Потоки работы с сетью берут разлоченый пакет, отправляют его, и лочат.
    А потоки генерации видя залоченный пакет генерят в нем всё и разлачивают его.
    И далее по кругу. Пойдет хорошо для мыльного спама.
    А те потоки которые с сетью. они смотрят - если пакет залочен, то ничего не
     
    1 person likes this.
  14. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    F#

    ты решил подобрать ЯП для задачи?

    Быть может стоит попытаться переделать задачу под тот ЯП с которым ты знаком?
    Дольше будешь язык изучать нежели самой задачей.
     
  15. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    +1 За неблокирующиеся сокеты. Многопоточность против них (в сетевых задачах) отсасывает. Вот только один нюанс - для того чтобы НОРМАЛЬНО на них писать то и кодер нужен НОРМАЛЬНЫЙ (как минимум)...
     
  16. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    =)

    У перла некрасиво сделано имхо с шаредами. + язык устарел.

    В питоне и руби есть проблема с GIL - с одной стороны это решает часть проблем с синхронизацией, с другой неоптимально на многоядерных системах(грузит 1 ядро).
    На threading несколько сотен потоков у меня было лимитом из-за этого.
    Питон содержит очень хорошие вещи как twisted и cogen.

    Есть варианты с Java и C#. Плохого ничего не скажу. Но кода больше по сравнению с питоном и руби.

    Что касается C++, то тут все зависит от фреймворка. Либо от наличия кучи ЛИШНЕГО времени при отсутствии фреймворка.

    Вариант с потоками удобнее, чем select/etc.
     
    1 person likes this.
  17. warkk

    warkk Member

    Joined:
    20 Feb 2009
    Messages:
    139
    Likes Received:
    23
    Reputations:
    0
    Угу, C#
     
  18. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Ну раз так, то читай "Средства параллельного программирования на языке АДА":)
     
  19. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3