Comments 26
Даже если хотел бы, принципиально не купил бы и не стал бы читать книгу, в которой concurrency называется конкурентностью, а concurrent переводится как конкурентый.
Как бы по вашему было бы правильно перевести данный термин?
Параллельный, многопоточный.
Это не синонимы слова конкурентный.
Конкурентный это выполение с борьбой за ресурс и задачи могут выполнятся поочередно, а не паралельно. При этом выполение может быть и на одном потоке.
Параллельный это реальное одновременное выполнение.
Многопоточность это один из способов достижения конкурентности и параллелизма, когда один процесс запускает несколько потоков.
Да и вообще конкурентный более общий термин, а паралельный, многопоточный это скорее конкретные имплементации.
Это не синонимы слова конкурентный
Именно! В этом весь и смысл, потому что "конкурентный" тут вообще не подходит, от слова никак.
Ну так ещё раз Вам вопрос: как Вы предлагаете переводить на русский язык термин "concurrency"? Ту самую concurrency, которая про разделение программы на независимые задачи (те которые tasks), а не обязательно про их реальное одновременное (параллельное) исполнение? Как Вы предлагаете перевести, например, широко известную в контексте concurrency vs. parallelism цитату Роба Пайка: "Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once."
Многопоточность.
Так Вам же уже писали, что многопоточность (multirheading) - всего один из практических вариантов реализации абстрактной концепции конкурентности (concurrency). Есть ещё, как минимум, многопроцессность (multiprocessing, по-русски тоже звучит не сильно благозвучно, но уже привыкли), когда для решения задачи запускается несколько процессов, а не потоков. И если бы Вы посмотрели содержание книги на сайте издательства, то увидели бы, что там первая часть про многопроцессность, и только вторая про многопоточность. Ну так как concurrency то переводим?
Мне написали неверно. Многопоточность это общий термин и единственный вариант concurrency. Поток - объект уровня ОС.
Неверно здесь пишите только Вы. Причём с самого первого Вашего сообщения. У Вас терминология неправильная в корне. Ещё раз - конкурентность можно реализовать, например, запуская множество процессов, а не потоков. В каждом процессе при этом будет ровно один (основной) поток. Это, очевидно, не многопоточность (а многопроцессность), но конкурентность в таком сценарии присутствует.
Почитайте про тот же MPI что-ли. Можно писать однопоточные конкурентные программы. И при наличии подходящего аппаратного обеспечения даже исполнять их параллельно. Вы просто запускаете несколько копий однопоточной программы (процессов) и они всем скопом решают некую общую задачу, обмениваясь между собой сообщениями. Многопоточность - не единственный вариант написания конкурентных программ.
Вам вот как раз эту книгу бы почитать не мешало. Особенно первую часть, про многопроцессность.
Запуская N процессов, вы автоматически запускаете минимум N потоков. Что является прямым фактом многопоточности.
А модель конкурентности построенная на зеленых потоках \ сопрограммах \ горутинах это тоже "многопоточность" по-вашему?
Прямым фактом является лишь то, что Вы используете какую-то свою собственную терминологию. Есть ли в ней смысл и много ли его обсуждать бессмысленно. Потому что все вокруг уже годами трактуют указанные термины иначе.
в котором за развитием технологии угнаться сложнее, чем за гепардом, накачанным стимуляторами,
Гепарда легко догнать, особенно на стимуляторах, врядли он пробежит больше 1км.
Это смотря как он бежит, они же не всегда ломятся на все деньги (как во время охоты), а умеют перемещаться довольно быстрой а-ля трусцой (для человека это темп примерно хорошей такой 300-метровки... на все деньги).
И если, когда они охотятся, то они быстрее перегреваются чем устают, то трусцой они могут довольно долго и на приличные дистанции бежать...
я чисто про гепардов без аллегорий - они известные неудачники и трусцой долго бежать не смогут (ну точно меньше человека), а человек почти кого угодно может "трусцой" догнать.
Да, человек - просто супер.
Довольно быстрых антилоп в Африке люди (первобытные племена) охотят очень интересным методом, и тоже основанном на перегреве.
Человек потея очень не плохо отдает излишнее тепло, и действительно трусцой может передвигаются на очень приличные расстояния даже в африканской жаре.
Антилопа (напуганная) валит на все деньги, но на расстояние чуть больше чем на те же все деньги может валить гепард.
Люди подкрадываются к стаду и делают БУ! Стадо ломит на все деньги на расстояние около 300-500 метров или около того. Гепард бежать быстро может примерно на 100 метров меньше.... Но люди не гепарды, они просто трусцой бегут за стадом.
Антилопа пробежав со всей дури еще минут 20-30 старательно охлаждается. Но люди прибегаю раньше и снова делают БУ!. Глуповатые антилопы снова снимаются и валят на все деньги на следующую дистанцию, но уже короче т.к. остыть не успели.
Дистанция короче значит отдыхать им люди дают еще меньше и снова БУ!. И снова ломим и снова короче ..... в общем доводят их люди до лежачего состояния - они просто перегрелись, мозги "кипят", и им даже стоять трудно. Ну люди подходят, милосердно так (чтоб не мучилась зверушка) по горлышку - чик, и понесли домой. Опытные охотники еще и последовательность этих БУ! подбирают так, что ложатся антилопы практически у их хижин.
Но вот с гепардами БУ! не проходит - они просто гораздо умнее антилоп. И гепарды (как и другие кошки) тоже потеть умеют.
Ну и да, в Британии каждый год гонки людей с лошадьми проходят - не помню точно дистанцию на которой лошади сливают. Не то что бы бегуны там доходяги неподготовленные, но и отнюдь не олимпийцы.
Отрывок так погрузил, что к его концу я не сразу опомнился, что я всё ещё на Хабре. Спасибо за обзор и купон, книгу приобрёл =)
Пока что в процессе чтения. Прочел больше половины. Очень неплохая книга за свои деньги и достаточно неплохо переведена, с чем часто косячат издательства. Рассмотрены многие аспекты многопоточки. Изложение очень доходчивое, очень много нескучных иллюстраций. В многопоточке я итак многое знал и использую, но книга углубляет некоторые знания и где-то дает что-то новое. В общем рекомендую и начинающим, и знающим.
Однако есть недостаток - все примеры написаны на Python. Для меня данный недостаток не очень значительный, так как читаю код на многих языках, но вот для других читателей это может оказаться существенным препятствием. Вопрос не к издательству - к автору.
Спасибо за отзыв!
Нам невероятно приятно, что Вам нравится "Грокаем конкурентность". Если захотите написать рецензию на книгу (на наш сайт или на Хабр, например) после прочтения, мы с удовольствием прочитаем и её)
Дочитал книгу буквально пару недель назад. Остался под приятным впечатлением. 80 процентов книги усваиваются достаточно легко - автору получилось многие моменты донести простыми словами. 20 оставшихся процентов стоило бы немного переработать.
В статье использован, на мой взгляд, неудачный отрывок из книги. Как по мне - стоило взять другой, так как задача про обедающих философов - достаточно трудная, в любом случае для начинающих.
После прочтения книги, если пишите не на Python, придется все же прошерстить документацию языка, с которым придется иметь дело на практике: синтаксис многопоточности, событийности, многозадачности и асинхронности варьируется в разных языках + обертки примитивов синхронизации немного разные.
Книга: «Грокаем конкурентность»