Как стать автором
Обновить

Комментарии 84

Аксиома — thread=поток и thread!=нить
значит у нас разная аксиоматика
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Откуда статистика?
Поддержу den1.

msdn.microsoft.com/en-us/library/aa911506.aspx
msdn.microsoft.com/en-us/library/aa915371.aspx
Microsoft тоже поддерживает
НЛО прилетело и опубликовало эту надпись здесь
Там написано, что у Виндовса есть:
Processes
Threads
Fibers

Ни о каких Streams там нет ни слова.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
понятия stream и thread ортогональны, поэтому меня (и моих коллег) совершенно не смущает то, что и то и другое мы называем «поток», из контекста всегда понятно, что имеется ввиду
НЛО прилетело и опубликовало эту надпись здесь
уж не знаю, в каком мире живете вы, а в моём (быдлокодерском мире) все называют thread потоком

да, я встречал использование термина «нить» пару раз, но и только

мне остается только развести руками
ну значит вы просто из «более нового» поколения программистов, на моей памяти понятие thread'а как потока начало появляться где-то в конце 90-х только. ну и для статистики, у меня также большинство знакомых пользуется старой привычкой и под «нитью» понимают именно «thread».
Почему бы и нет :) Контекст — великая сила.
НЛО прилетело и опубликовало эту надпись здесь
ну а когда речь идет о Stream и Thread одновременно, как их различать будем?
Stream — поток данных, Thread — поток выполнения.
ну мы же вроде тут все в ИТ секторе пасемся :)
давайте будем стараться без необходимости не уменьшать кол-во полезной информации на байт :)
Я не понял, как я уменьшил кол-во информации?)

А вообще это всё проблемы перевода Eng → Rus.
Процесс, нить, поток, поток данных, тред...
Process, Thread, Stream — и всё понятно)
Row, line, string — строка. :)
Все эти слова имею разный смысл, просто их переводят неправильно
Line — линия, черта, граница
String — струна, тетива, нечто натянутое
Row — ряд, шеренга
А как-же будет текстовая строка по-английски?)
смотря что ты имеешь ввиду:
Строка — чёткая последовательность символов String (ассоциация бусы натянутые на нитку)
Строка — в смысле линия текста Line
Но уж никак не Row.
Спасибо)
Теперь всё понял
[цинично ржОт]

You can see error message in 5th screen's row: «incorrect string literal in the line 211».
Вы можете увидеть сообщение об ошибке в 5-ом ряду экрана: «неправильный строковый литерал на 211 линии»
Как Вы сказали? 5-й ряд экрана?

[немедленно умирает в муках]
Именно.
Думаю, читатели Ваших переводов проведут немало времени, пытаясь понять, что же имел в виду автор оригинального текста. :)
Вы можете увидеть сообщение об ошибке в 5-ой строке экрана:«неправильный литерал строки в строке 211» — лучше?
Нет. Но понятней это точно. :)
Ну что ж, если «литерал строки в строке в строке» Вам понятней — пользуйтесь, миру нужно многообразие мнений.
Лично я этим пользоваться не буду. У меня в самом начале этой ветки обсуждения была шутка, но раз уж Вы серьёзно разговариваете — оба варианта плохи.

«Ряд экрана» никогда и никто не говорил, и не писал — не существует такой терминологии. Но это полбеды. В конечном итоге всегда можно ввести новый термин. Хуже, что новое значение добавляется к уже существующему слову «ряд», которое не менее, чем «строка» используется в ИТ.

Как только в английском встретися «you can see Taylor's series at 5th row» Вам опять придётся придумывать, как увязать 5-й ряд экрана с рядом Тейлора.

Я не мир, мне многообразие мнений не нужно, потому интересуют только продуманные мнения, а не придуманные тут же по хожу обсуждения.

Решение в данном случае заключается не в том, чтобы фиксировать перевод терминов (тем более, что он уже зафиксирован), а в том, чтобы вдумчиво переписывать такие «сложные» места своим языком.

Автор статьи в данном случае всё сделал правильно — в первом же абзаце написал что под чем понимается, чтобы не было путаницы.
row — это все-таки ряд :)
И тут всё не так категорично) Например, в контексте таблиц можно сказать «строка» вместо «ряд».
Table row — строка таблицы
В 3-м ряду на экране вы видите сообщение…

Это по-русски, правда? ;)
по контексту.
очень своевременное замечание.
или надо просто что-то сказать?
НЛО прилетело и опубликовало эту надпись здесь
потоки и нити (threads and fibers) — вообще говоря разные вещи
согласен, но все-равно однозначного устоявшегося перевода нет
плюс, эти понятия могут сильно менять свое значение в зависимости от того, на каком уровне абстракции мы находимся
для этого я, кажется, вполне четко изложил, что подразумевается под нитью в данном конкретном тексте
Разные)
Но википедия и я думаем, что «Fiber» лучше переводить как «Волокно»
НЛО прилетело и опубликовало эту надпись здесь
мы с коллегами говорим «фибер» и не сношаем друг другу мозг
Ага, или «тред» — по-моему, лучше для избежания непонимания и не придумаешь. Все равно слова нерусские и изначально ни «нить», ни «поток» не имели этих компутерных значений.
Согласен с nvbn, thread (поток) и fiber (нить) — это разные вещи.
fiber(нитка) — user-mode, thread(тред, поток) — ядерные. По-дефолту поток==нить==thread, чисто технический сленг.
Все вышесказанное относится к winapi.
ребят, давайте не будем сюда еще теорию струн вписывать ))
Как забавно, автор писал статью о параллельном программирвании, а публика слышит только «нить» вместо «поток». Ну, на комментарии посмотрите.
Самое забавное — я тоже.
Я думаю, чтобы переть против устоявшейся терминологии нужно предложить куда больше, чем экономию пары байтов =).
Задело за живое :)
Это как называть драйвер «водителем» потому что это тоже правильный перевод.
Гуртовщики мыши помните?
Даа, точно :)
Это ведь где «Снова зашейте мышь. Проверьте на переломы проводка» ©? :)))
В свое время покатались по полу.
НЛО прилетело и опубликовало эту надпись здесь
Это кстати нормально. Есть дерево реестра, у него есть ветви. Набор ветвей еще не дерево, но, вполне возможно, куст.
НЛО прилетело и опубликовало эту надпись здесь
в математике нет, а в реестре Windows есть :)
А два поддерева как назвать?
В том-то и проблема, что у них разный корень.
НЛО прилетело и опубликовало эту надпись здесь
Ну да как в ActiveDirectory :)
А хозяин леса (пользователь от которого делается) как нызывается? Леший? :)
Как бы ни утверждал автор топика, устоявшееся название для того, о чем он рассказывает — поток. Т.е. Thread = поток, точно так же, как Multithreading = мультипоточность или многопоточность.

Честно говоря, ни разу не встречал определения «нить» или «многониточность».
НЛО прилетело и опубликовало эту надпись здесь
Ну, спорить не стану — действительно стоило сказать, что это «специфика окружения». Да, говорю именно «со своей колокольни».
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Встречал вопрос на собеседование в MS — в чем разница между нитями и потоками. Ответ — нити используют единую область памяти внутри процесса.
единую область памяти — непонятно что имеется в виду

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

А вы поток с процессом не попутали случайно?
Нет не попутал ;)

A fiber is a unit of execution that must be manually scheduled by the application. Fibers run in the context of the threads that schedule them. Each thread can schedule multiple fibers.

reference: http://msdn.microsoft.com/en-us/library/ms682661(VS.85).aspx
А вы исходники своей программы выложите? или это будет в 3-ем посте?
именно, он на подходе
НЛО прилетело и опубликовало эту надпись здесь
Вас насильно читать заставляют?
Ему трафик жалко)
тред — thread, стрим — stream :) и никакой путаницы!
Я смотрю тут некоторые путают не поток и нить, а поток и процесс.
Можно я скажу?
В научных беседах, когда собеседники видят, что проблема в терминологии, они договариваются от ней в рамках данного разговора. Иногда доходит до курьезов, когда обозначают отвлеченными словами. Предлагаю назвать thread — ежом, stream — ужом, fiber — колючей проволокой, сказать какое определение за что отвечает и не мучится. ;)

З.Ы. Автор, кстати, во избежание разночтений предварительно дал то определение, которым пользуется, и что за ним стоит. Будьте терпимы и разжигайте холивар на пустом месте.
Thread — это цепочка выполнения команд процесса (маршрут). Process — множество команд, с основной цепочкой их выполнения (магистраль?). Процессор последовательно выполняет команды по каждой из цепочек процесса. Допустим, по одной команде из каждой цепочки за раз. Цепочки выполнения команд могут пересекаться. Если команды в этих пересечениях оперируют одними и теми же данными — нам нужно выполнять синхронизацию потоков, приостановить выполнение команд в одной из цепочек, дать выполниться командам в другой. Если данные разные для каждой цепочки — то не паримся, процессор просто выполнит несколько раз (по количеству пересёкшихся цепочек) одну и ту же команду с разными данными.

Вот такая картинка в голове позволяет мне писать многопоточный код. Параллельного кода ещё не писал, но там и картинка проще этой.

Что конкретнее значит «цепочки могут пересекаться»?

И еще процессор может не обязательно выполнять по одной команде из потока, а есть еще приоритеты потоков (несинхронизированных).
Это значит, что один и тот же код может выполняться в нескольких потоках «одновременно». Про процессор — я намеренно всё упростил, чтобы картинка была понятнее.
Так итог какой у поста, треды на разных ядрах выполняются?

насколько я знаю, те треды и процессы которые мы используем в .net это виртуальные процессы порожденные фреймворком, который сам решает мепить данный тред на новый (настоящий тред ОС) или повесить на существующий. А уже ОС дальше решает повесить данный тред на другое ядро (процессор) или нет. Поэтому _мне кажется_ что иногда тред будет выполнятся на том же ядре а иногда на другом в зависимости от загруженности системы.
абсолютно верно, именно так дело и обстоит
По-дефолту, ОС сама решает на какое ядро кинуть выполняемый поток, но разработчик может прямо указать какую задачу на какое ядро/процессор он хочет «повесить».
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации