Pull to refresh

Comments 84

UFO landed and left these words here
UFO landed and left these words here
Откуда статистика?
Поддержу den1.

msdn.microsoft.com/en-us/library/aa911506.aspx
msdn.microsoft.com/en-us/library/aa915371.aspx
Microsoft тоже поддерживает
UFO landed and left these words here
Там написано, что у Виндовса есть:
Processes
Threads
Fibers

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

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

мне остается только развести руками
ну значит вы просто из «более нового» поколения программистов, на моей памяти понятие thread'а как потока начало появляться где-то в конце 90-х только. ну и для статистики, у меня также большинство знакомых пользуется старой привычкой и под «нитью» понимают именно «thread».
UFO landed and left these words here
ну а когда речь идет о Stream и Thread одновременно, как их различать будем?
Stream — поток данных, Thread — поток выполнения.
ну мы же вроде тут все в ИТ секторе пасемся :)
давайте будем стараться без необходимости не уменьшать кол-во полезной информации на байт :)
Я не понял, как я уменьшил кол-во информации?)

А вообще это всё проблемы перевода Eng → Rus.
Процесс, нить, поток, поток данных, тред...
Process, Thread, Stream — и всё понятно)
Все эти слова имею разный смысл, просто их переводят неправильно
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-й ряд экрана с рядом Тейлора.

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

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

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

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

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

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

А вы поток с процессом не попутали случайно?
А вы исходники своей программы выложите? или это будет в 3-ем посте?
UFO landed and left these words here
Вас насильно читать заставляют?
тред — thread, стрим — stream :) и никакой путаницы!
Я смотрю тут некоторые путают не поток и нить, а поток и процесс.
Можно я скажу?
В научных беседах, когда собеседники видят, что проблема в терминологии, они договариваются от ней в рамках данного разговора. Иногда доходит до курьезов, когда обозначают отвлеченными словами. Предлагаю назвать thread — ежом, stream — ужом, fiber — колючей проволокой, сказать какое определение за что отвечает и не мучится. ;)

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

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

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

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

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

Articles