Комментарии 84
Аксиома — thread=поток и thread!=нить
+10
значит у нас разная аксиоматика
-5
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Откуда статистика?
Поддержу den1.
msdn.microsoft.com/en-us/library/aa911506.aspx
msdn.microsoft.com/en-us/library/aa915371.aspx
Microsoft тоже поддерживает
Поддержу den1.
msdn.microsoft.com/en-us/library/aa911506.aspx
msdn.microsoft.com/en-us/library/aa915371.aspx
Microsoft тоже поддерживает
+5
НЛО прилетело и опубликовало эту надпись здесь
понятия stream и thread ортогональны, поэтому меня (и моих коллег) совершенно не смущает то, что и то и другое мы называем «поток», из контекста всегда понятно, что имеется ввиду
+4
НЛО прилетело и опубликовало эту надпись здесь
уж не знаю, в каком мире живете вы, а в моём (быдлокодерском мире) все называют thread потоком
да, я встречал использование термина «нить» пару раз, но и только
мне остается только развести руками
да, я встречал использование термина «нить» пару раз, но и только
мне остается только развести руками
+5
Почему бы и нет :) Контекст — великая сила.
+1
НЛО прилетело и опубликовало эту надпись здесь
ну а когда речь идет о Stream и Thread одновременно, как их различать будем?
0
Stream — поток данных, Thread — поток выполнения.
+15
ну мы же вроде тут все в ИТ секторе пасемся :)
давайте будем стараться без необходимости не уменьшать кол-во полезной информации на байт :)
давайте будем стараться без необходимости не уменьшать кол-во полезной информации на байт :)
0
Я не понял, как я уменьшил кол-во информации?)
А вообще это всё проблемы перевода Eng → Rus.
Процесс, нить, поток, поток данных, тред...
Process, Thread, Stream — и всё понятно)
А вообще это всё проблемы перевода Eng → Rus.
Process, Thread, Stream — и всё понятно)
0
Row, line, string — строка. :)
+4
Все эти слова имею разный смысл, просто их переводят неправильно
Line — линия, черта, граница
String — струна, тетива, нечто натянутое
Row — ряд, шеренга
Line — линия, черта, граница
String — струна, тетива, нечто натянутое
Row — ряд, шеренга
+1
А как-же будет текстовая строка по-английски?)
0
[цинично ржОт]
You can see error message in 5th screen's row: «incorrect string literal in the line 211».
You can see error message in 5th screen's row: «incorrect string literal in the line 211».
0
Вы можете увидеть сообщение об ошибке в 5-ом ряду экрана: «неправильный строковый литерал на 211 линии»
+1
Как Вы сказали? 5-й ряд экрана?
[немедленно умирает в муках]
[немедленно умирает в муках]
0
Именно.
0
Думаю, читатели Ваших переводов проведут немало времени, пытаясь понять, что же имел в виду автор оригинального текста. :)
0
Вы можете увидеть сообщение об ошибке в 5-ой строке экрана:«неправильный литерал строки в строке 211» — лучше?
0
Нет. Но понятней это точно. :)
0
Ну что ж, если «литерал строки в строке в строке» Вам понятней — пользуйтесь, миру нужно многообразие мнений.
0
Лично я этим пользоваться не буду. У меня в самом начале этой ветки обсуждения была шутка, но раз уж Вы серьёзно разговариваете — оба варианта плохи.
«Ряд экрана» никогда и никто не говорил, и не писал — не существует такой терминологии. Но это полбеды. В конечном итоге всегда можно ввести новый термин. Хуже, что новое значение добавляется к уже существующему слову «ряд», которое не менее, чем «строка» используется в ИТ.
Как только в английском встретися «you can see Taylor's series at 5th row» Вам опять придётся придумывать, как увязать 5-й ряд экрана с рядом Тейлора.
Я не мир, мне многообразие мнений не нужно, потому интересуют только продуманные мнения, а не придуманные тут же по хожу обсуждения.
Решение в данном случае заключается не в том, чтобы фиксировать перевод терминов (тем более, что он уже зафиксирован), а в том, чтобы вдумчиво переписывать такие «сложные» места своим языком.
Автор статьи в данном случае всё сделал правильно — в первом же абзаце написал что под чем понимается, чтобы не было путаницы.
«Ряд экрана» никогда и никто не говорил, и не писал — не существует такой терминологии. Но это полбеды. В конечном итоге всегда можно ввести новый термин. Хуже, что новое значение добавляется к уже существующему слову «ряд», которое не менее, чем «строка» используется в ИТ.
Как только в английском встретися «you can see Taylor's series at 5th row» Вам опять придётся придумывать, как увязать 5-й ряд экрана с рядом Тейлора.
Я не мир, мне многообразие мнений не нужно, потому интересуют только продуманные мнения, а не придуманные тут же по хожу обсуждения.
Решение в данном случае заключается не в том, чтобы фиксировать перевод терминов (тем более, что он уже зафиксирован), а в том, чтобы вдумчиво переписывать такие «сложные» места своим языком.
Автор статьи в данном случае всё сделал правильно — в первом же абзаце написал что под чем понимается, чтобы не было путаницы.
0
row — это все-таки ряд :)
+1
по контексту.
-1
НЛО прилетело и опубликовало эту надпись здесь
потоки и нити (threads and fibers) — вообще говоря разные вещи
+5
согласен, но все-равно однозначного устоявшегося перевода нет
плюс, эти понятия могут сильно менять свое значение в зависимости от того, на каком уровне абстракции мы находимся
для этого я, кажется, вполне четко изложил, что подразумевается под нитью в данном конкретном тексте
плюс, эти понятия могут сильно менять свое значение в зависимости от того, на каком уровне абстракции мы находимся
для этого я, кажется, вполне четко изложил, что подразумевается под нитью в данном конкретном тексте
+2
Разные)
Но википедия и я думаем, что «Fiber» лучше переводить как «Волокно»
Но википедия и я думаем, что «Fiber» лучше переводить как «Волокно»
+1
НЛО прилетело и опубликовало эту надпись здесь
мы с коллегами говорим «фибер» и не сношаем друг другу мозг
+3
Согласен с nvbn, thread (поток) и fiber (нить) — это разные вещи.
0
fiber(нитка) — user-mode, thread(тред, поток) — ядерные. По-дефолту поток==нить==thread, чисто технический сленг.
Все вышесказанное относится к winapi.
Все вышесказанное относится к winapi.
+1
ребят, давайте не будем сюда еще теорию струн вписывать ))
+3
Как забавно, автор писал статью о параллельном программирвании, а публика слышит только «нить» вместо «поток». Ну, на комментарии посмотрите.
Самое забавное — я тоже.
Я думаю, чтобы переть против устоявшейся терминологии нужно предложить куда больше, чем экономию пары байтов =).
Самое забавное — я тоже.
Я думаю, чтобы переть против устоявшейся терминологии нужно предложить куда больше, чем экономию пары байтов =).
+4
Задело за живое :)
Это как называть драйвер «водителем» потому что это тоже правильный перевод.
Это как называть драйвер «водителем» потому что это тоже правильный перевод.
0
Гуртовщики мыши помните?
0
Даа, точно :)
Это ведь где «Снова зашейте мышь. Проверьте на переломы проводка» ©? :)))
В свое время покатались по полу.
Это ведь где «Снова зашейте мышь. Проверьте на переломы проводка» ©? :)))
В свое время покатались по полу.
0
«Процессы и потоки in-depth. Обзор различных потоковых моделей»
habrahabr.ru/blogs/system_programming/40227/
habrahabr.ru/blogs/system_programming/40227/
+3
Как бы ни утверждал автор топика, устоявшееся название для того, о чем он рассказывает — поток. Т.е. Thread = поток, точно так же, как Multithreading = мультипоточность или многопоточность.
Честно говоря, ни разу не встречал определения «нить» или «многониточность».
Честно говоря, ни разу не встречал определения «нить» или «многониточность».
+6
НЛО прилетело и опубликовало эту надпись здесь
Встречал вопрос на собеседование в MS — в чем разница между нитями и потоками. Ответ — нити используют единую область памяти внутри процесса.
+2
единую область памяти — непонятно что имеется в виду
нити и потоки работают в едином адресном пространстве. разница в том что один поток может выполнять несколько нитей(но не параллельно). переключение между нитями легковесное, т.к. смены контекста не происходит.
нити и потоки работают в едином адресном пространстве. разница в том что один поток может выполнять несколько нитей(но не параллельно). переключение между нитями легковесное, т.к. смены контекста не происходит.
0
А вы поток с процессом не попутали случайно?
0
Нет не попутал ;)
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
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
+1
А вы исходники своей программы выложите? или это будет в 3-ем посте?
+2
НЛО прилетело и опубликовало эту надпись здесь
тред — thread, стрим — stream :) и никакой путаницы!
+1
Я смотрю тут некоторые путают не поток и нить, а поток и процесс.
+2
Можно я скажу?
В научных беседах, когда собеседники видят, что проблема в терминологии, они договариваются от ней в рамках данного разговора. Иногда доходит до курьезов, когда обозначают отвлеченными словами. Предлагаю назвать thread — ежом, stream — ужом, fiber — колючей проволокой, сказать какое определение за что отвечает и не мучится. ;)
З.Ы. Автор, кстати, во избежание разночтений предварительно дал то определение, которым пользуется, и что за ним стоит. Будьте терпимы и разжигайте холивар на пустом месте.
В научных беседах, когда собеседники видят, что проблема в терминологии, они договариваются от ней в рамках данного разговора. Иногда доходит до курьезов, когда обозначают отвлеченными словами. Предлагаю назвать thread — ежом, stream — ужом, fiber — колючей проволокой, сказать какое определение за что отвечает и не мучится. ;)
З.Ы. Автор, кстати, во избежание разночтений предварительно дал то определение, которым пользуется, и что за ним стоит. Будьте терпимы и разжигайте холивар на пустом месте.
+2
Thread — это цепочка выполнения команд процесса (маршрут). Process — множество команд, с основной цепочкой их выполнения (магистраль?). Процессор последовательно выполняет команды по каждой из цепочек процесса. Допустим, по одной команде из каждой цепочки за раз. Цепочки выполнения команд могут пересекаться. Если команды в этих пересечениях оперируют одними и теми же данными — нам нужно выполнять синхронизацию потоков, приостановить выполнение команд в одной из цепочек, дать выполниться командам в другой. Если данные разные для каждой цепочки — то не паримся, процессор просто выполнит несколько раз (по количеству пересёкшихся цепочек) одну и ту же команду с разными данными.
Вот такая картинка в голове позволяет мне писать многопоточный код. Параллельного кода ещё не писал, но там и картинка проще этой.
Вот такая картинка в голове позволяет мне писать многопоточный код. Параллельного кода ещё не писал, но там и картинка проще этой.
0
Что конкретнее значит «цепочки могут пересекаться»?
И еще процессор может не обязательно выполнять по одной команде из потока, а есть еще приоритеты потоков (несинхронизированных).
И еще процессор может не обязательно выполнять по одной команде из потока, а есть еще приоритеты потоков (несинхронизированных).
0
Так итог какой у поста, треды на разных ядрах выполняются?
насколько я знаю, те треды и процессы которые мы используем в .net это виртуальные процессы порожденные фреймворком, который сам решает мепить данный тред на новый (настоящий тред ОС) или повесить на существующий. А уже ОС дальше решает повесить данный тред на другое ядро (процессор) или нет. Поэтому _мне кажется_ что иногда тред будет выполнятся на том же ядре а иногда на другом в зависимости от загруженности системы.
насколько я знаю, те треды и процессы которые мы используем в .net это виртуальные процессы порожденные фреймворком, который сам решает мепить данный тред на новый (настоящий тред ОС) или повесить на существующий. А уже ОС дальше решает повесить данный тред на другое ядро (процессор) или нет. Поэтому _мне кажется_ что иногда тред будет выполнятся на том же ядре а иногда на другом в зависимости от загруженности системы.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Многоядрёное программирование в .Net и нити.