admin / 05.05.2018

Тред

Не следует путать с многопоточность.

Тред (англ. thread, буквально — нить) в интернет-форумах, блогах, списках рассылки, конференциях — последовательность ответов на сообщение, то есть «ветвь обсуждения».

Сообщения показываются в виде связанной последовательности («ветви»), если их объединяет общая тема или общий идентификатор ветви.

В программировании «тредом» иногда называется поток команд (см. многопоточность). Поток команд называют также просто потоком (когда смысл ясен из контекста), потоком выполнения или нитью.

Напишите отзыв о статье «Тред»

Ссылки

  • Wolsey, T. DeVere. [www.readingonline.org/articles/art_index.asp?HREF=wolsey/index.html Reading Online — «Literature Discussion in Cyberspace: Young Adolescents Using Threaded Discussion Groups to Talk About Books»]. 01.2004  (англ.)

Отрывок, характеризующий Тред

Все, что видел Пьер направо и налево, было так неопределенно, что ни левая, ни правая сторона поля не удовлетворяла вполне его представлению. Везде было не доле сражения, которое он ожидал видеть, а поля, поляны, войска, леса, дымы костров, деревни, курганы, ручьи; и сколько ни разбирал Пьер, он в этой живой местности не мог найти позиции и не мог даже отличить ваших войск от неприятельских.
«Надо спросить у знающего», – подумал он и обратился к офицеру, с любопытством смотревшему на его невоенную огромную фигуру.
– Позвольте спросить, – обратился Пьер к офицеру, – это какая деревня впереди?
– Бурдино или как? – сказал офицер, с вопросом обращаясь к своему товарищу.
– Бородино, – поправляя, отвечал другой.

Тред (англ. thread, буквально — нить) в интернет-форумах, блогах, списках рассылки, конференциях — последовательность ответов на сообщение, то есть «ветвь обсуждения».

Тридцатилетняя война — военный конфликт за гегемонию в Священной Римской империи германской нации и Европе, продолжавшийся с 1618 по 1648 год и затронувший в той или иной степени практически все европейские страны.

Трудово́е пра́во — самостоятельная отрасль права, регулирующая отношения в сфере труда. Является относительно молодой отраслью права (момент возникновения относится к рубежу 19-20 веков), а одним из основателей самостоятельной отрасли трудового права стал учёный Л.С.Таль

Есть много традиций и историй, связанных с Кубком Стэнли. Многие из этих историй связаны с тем, что кубок периодически подвергается небрежному обращению.

Васи́лий Кири́ллович Тредиако́вский (также Тредьяковский; 22 февраля (5 марта) 1703 — 6 (17) августа 1769) — русский поэт, переводчик и филолог XVIII века, один из основателей силлабо-тонического стихосложения в России.

Тридцать шесть стратагем (кит. трад. 三十六計, упр. 三十六计, пиньинь: sān-shí-liù jì) — древнекитайский военный трактат.

Трэш-ме́тал или Треш-ме́тал (англ. thrash metal, от to thrash — англ. бить, молотить, крошить) — музыкальное направление в метале, давшее начало всем экстремальным его разновидностям.

Трудная проблема сознания (англ.

Словарь молодежного слэнга

hard problem of consciousness) — это проблема объяснения того, почему у нас есть квалиа или феноменальный опыт, как ощущения приобретают такие характеристики, как цвет или вкус.

Жозеф Филипп Пьер Ив Эллио́тт Трюдо́ (фр. Joseph Philippe Pierre Yves Elliott Trudeau, 18 октября 1919, Монреаль, Канада — 28 сентября 2000, там же) — канадский политик, пятнадцатый премьер-министр Канады в 1968—1979 и 1980—1984 годах.

Джа́сти́н (Жюсте́н) Пьер Джеймс Трюдо́ (англ. Justin Pierre James Trudeau; 25 декабря 1971, Оттава) — канадский политик, премьер-министр Канады с 4 ноября 2015 года, лидер Либеральной партии Канады с 14 апреля 2013 года.

Теги: Многозадачность, процесс, поток, отличие процесса от потока, параллелизм, общий доступ к ресурсам, Pthread.h, POSIX threads

Процессы и потоки

Процесс – это исполняемая копия приложения. Например, когда вы открываете приложение MS Word, то запускаете процесс, исполняющий программу MS Word. Поток – отдельное исполняемое задание внутри процесса. Процесс может содержать множество исполняемых потоков. После запуска приложения исполняется главный поток, который далее может порождать другие потоки.

Каждый процесс обладает собственной памятью. Потоки же, которые запущены внутри процесса, разделяют память между собой. Процесс внутри операционной системы обладает собственным идентификатором. Потоки существуют внутри процесса и обладают идентификатором внутри работающего приложения. Каждый из потоков имеет свой собственный стек (он не делит его с другими потоками и другие потоки не могут в него залезть) и собственный набор регистров (поток не изменит значения регистра другого потока во время работы). Часто потоки называют «легковесными» процессами, так как они требуют гораздо меньше ресурсов для работы, чем новый процесс. В зависимости от реализации, обычный настольный компьютер может эффективно использовать от единиц, до десятков тысяч потоков.

Процесс

  • Идентификатор процесса
  • Окружение
  • Рабочая папка
  • Регистры
  • Стек
  • Куча
  • Файловый дескриптор
  • Общие библиотеки (dll, so)
  • Инструменты межпроцессорного взаимодействия (пайпы, очереди сообщений, семафоры или обобщённая память)
  • Специфические для операционной системы ресурсы

Поток

  • Stack Pointer (указатель на вершину стека, на самом деле «своего» стека, как у процесса, у потока нет)
  • Регистры
  • Свойства (необходимые для планировщика, такие как приоритет или политики)
  • Специфичные для потока данные
  • Специфические для операционной системы ресурсы

Многозадачность и параллелизм

Многозадачные системы позволяют запускать несколько задач одновременно. Многозадачность не обязательно обозначает истинную параллельность выполнения задач: такие системы существуют достаточно давно и появились тогда, когда процессоры были одноядерными. Все задачи получают от планировщика временной промежуток, в течение которого выполнять работу. После чего задача переходит в состояние ожидания. Все задачи имеют свой приоритет, соответственно, чем выше приоритет, тем больше времени задача может работать.

Многозадачные системы на однопоточном процессоре создают иллюзию синхронного выполнения нескольких процессов. Пусть у нас есть три процесса. Если каждый из них работает время t1, t2 и t3, то общее время выполнения будет равно t1+ t2 + t3.

Последовательное выполнение трёх процессов на однопоточном процессоре

Если теперь мы разобьём каждую из задач на N частей, то общее время выполнения будет dt1*N+dt2*N+dt3*N+dts*N*N, где dts – это время, затрачиваемое на восстановление контекста выполнения задачи (на работу планировщика).

Работа каждого процесса на однопоточном процессоре разбита на временные промежутки

С одной стороны, последовательное выполнение трёх задач без накладных расходов на переключение между задачами должно быть гораздо быстрее. Однако на практике часто бывает иначе. Если процесс выполняет много операция ввода-вывода или работает с внешними ресурсами, то большую часть времени он простаивает, ожидая данные. Это время простоя занимает другая задача. Таким образом, общее время выполнения становится меньше.

Когда процесс большую часть своего времени простаиват в ожидании ресурсов, то параллельное выполнение нескольких задач может происходить быстрее, чем последовательное

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

Но стоит помнить, что в ряде случаев даже на одноядерном процессоре такая искусственная параллелизация может существенно ускорить выполнение.

Для многоядерных систем всё яснее: если задача разбита на несколько потоков, то каждый из них может выполняться реально параллельно. То есть, если решать задачу в 4 потока вместо одного, то потенциально она станет работать в 4 раза быстрее. Очевидно, что где-то есть подвох…

Во-первых, ускорение работы с увеличением числа процессоров и ядер растёт нелинейно и имеет для данной задачи какой-то потолок (см. закон Амдала).

Что такое тред?

А во-вторых, задача сильно усложняется при наличии общих ресурсов.

Совместный доступ к ресурсам

Когда несколько потоков делают каждый своё дело, не разделяя память, то они могут сильно ускорить работу. Дополнительные издержки потребуются только для выделения ресурсов под эти потоки и для передачи им необходимых данных. Когда несколько потоков должны общаться друг с другом, передавать данные, обрабатывать один объект, то есть совместно обращаться к одному ресурсу (обычно это общий участок памяти), то возникают так называемые race conditions – состояния гонки – когда результат работы зависит от порядка доступа к ресурсам.

Например, нам нужно сложить два массива a и b одинаковой длины и поместить результат в массив c. Каждое значение c[i] зависит от a[i] и b[i] и не зависит от остальных. Мы можем разделить массивы на несколько участков, и каждый из потоков будет заниматься сложением только этих участков, не пересекаясь с остальными потоками. У них всех будут общие переменные a, b и c, но они будут всегда независимо обращаться только к отдельным областям памяти.

Второй типичный пример: банковский счёт. Пусть два человека имеют доступ до одного счёта. На счету 10000. Пользователь A снимает со счёта 8000. Второй пользователь запрашивает остаток. Операция первого пользователя не успела завершиться и на счету указано 10000. Второй пользователь снимает 5000. В тот момент, когда он отправил заявку на снятие денег со счёта, деньги уже снялись, и на счету осталось 2000. В данном случае возможно несколько исходов. Самый лучший, когда у второго пользователя выпадет ошибка, и он ничего не получит. Ситуация, когда второй пользователь снимет деньги и счёт станет -3000. А также ситуация, когда оба снимут деньги и на счету останется 2000 или 5000.

POSIX threads

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

В связи с этим, появилась необходимость в стандарте для потоков. Для UNIX-подобных операционных систем был принят стандарт IEEE POSIX 1003.1c (1995). Реализация библиотеки для работы с потоками в соответствии с этим стандартом и называется POSIX threads, или pthreads.

В настоящее время большинство производителей совместно со своими собственными интерфейсами для работы с потоками предлагают Pthreads. Pthreads обычно представляет собой набор типов и функций на языке си, описанных в файле pthread.h и реализованных в .h, .lib, .dll и т.д. файлах, поставляемых с библиотекой. Иногда pthread входит в состав другой библиотеки (например, libc).

ru-Cyrl18-tutorialSypachev S.S.1989-04-14sypachev_s_s@mail.ruStepanSypachevstudents

Q&A

Что такое потоки процессора?

Во многих процессорах топового уровня есть потоки, как и ядра. Я постараюсь объяснить в чем отличие потока от ядра, и в чем преимущество этих потоков. Потоки появились достаточно давно, а именно еще во времена правления Pentium 4 (до них она был в Ксеонах как суперпоточность).

В то время потоки еще носили сомнительную пользу, некоторые пользователи считали что они только ухудшают производительность.

Но на самом деле, производительность не падала, просто на то время программ, которые могли грамотно работать с двумя потоками — вообще не было. Поэтому, потоки это скорее всего была экспериментальная технология в то время, кстати почти все Pentium D также не имели ее за исключением топовых моделе D955, D965 (это двухядерники с четырьмя потоками).

Теперь немного разберемся с тем, что это вообще такое. Технология потоков называется Hyper-threading и отображается сокращенно: HT (как правило указывается на коробках сбоку). На одно ядро допустим один поток. Если вы задавались иногда вопросом «как увеличить количество потоков процессора», то я вас разочарую — это невозможно, и даже не думайте об этом, это глупости =).

Hyper-threading позволяет хранить состояние сразу двух потоков, поэтому в из под Windows такие потоки выглядят как ядра. То есть, если у вас имеет процессор 2 ядра, то это 4 потока. Соответственно я имею ввиду процессор, который поддерживает гипертрейдинг.

Как работает Hyper-threading? Чтобы вы понимали, то процессор выполняет не только ваши задачи, но и другие, и в том числе служебные. Так вот, обрабатывая данные, поток потом их отправляет, или ждет новых данных из оперативной памяти. В это время, пока он ждет, он может помогать другому потоку. То есть гипертрейдинг призван увеличить производительность процессора, уменьшая время бездействия.

То есть, можно сделать вывод, что количество потоков всегда равно количеству ядер умноженное на два. Никак иначе. Эту технологию разработала Intel, соответственно в AMD-процессорах ее нет, но есть мнение, что у них есть подобная технология, именно поэтому многие считают что в восьми-ядерных процессорах AMD восемь не ядре, а потоков.

В любом случае, эта технология полезна, хоть это и виртуальные ядра — лучше с HT, чем без нее.

Также плюсом является то, что не только система видит такие потоки как настоящие ядра, но и программы, и если программа умеет распараллеливать свою работу, то скорость ее работы будет выше с потоками, чем без.

Теперь вас наверно заинтересует — как узнать количество потоков процессора? Это очень просто.

Слово тред

Вам нужно открыть диспетчер задач (по панели задач нажмите правой кнопкой), и перейти на вкладку производительность. Там будет поле ядра, а под ним — количество потоков, вам нужно последнее:

Как видите, число потоков равно числу ядер, потому что мой Pentium G3220 к сожалению не поддерживает технологию HT.

Современные процессоры Intel Core i3, i7 ее поддерживают, а вот i5 — нет (вроде бы только в ноутбуках есть i5 с двумя ядрами и HT, и некоторые процессоры на 1156 сокет, там тоже два ядра и HT). Думаю что маркетинговый ход, чтобы было равно-мерное увеличение производительности моделей серии i.

Если вы думаете, какой процессор лучше — с потоками или нет, то конечно с ними. Иногда (не буду углубляться) цена с поддержкой HT и без невелика, поэтому стоит доплатить и взять тот, что поддерживает HT. Это я так, в общих чертах вам на будущее.

Вернуться на главную!
— Что_это?

Архив тредов имиджборд.
Предназначен для хранения избранных аноном тредов.
Обычно используется для хранения винрарных тредов, или любых по нраву с быстрых досок, для прочтения позже.

— Каков принцип работы?

Добавленный тред ставится в очередь проверки. После первой загрузки, его статус изменится на Активный.
Активные треды до самого удаления проверяются на наличие новых постов, после чего их статус меняется на Сохранен.

— Как часто обновляются треды?

Актуальную информацию можно посмотреть здесь.

— Какие существуют ограничения контента?

Нежелательно:
Порнографический и шок-контент. Банить никто не будет, но не удивляйтесь, если тред, или пикчи из него, пропадут.
Запрещено:
ЦП.

— Какие чаны поддерживает?

Пока 2ch.hk и iichan.hk.

— Какие доски сохраняет?

Все.

— Как найти тред?

Есть поиск от Google, фильтр по тегам, среди которых теги чанов и досок, а также фильтр по дате.
Также, есть разделы для добавленных вами тредов и закладок.
Для поиска по номеру поста/треда, введите «№» в поиске, с кавычками.

— Картинки не отображаются
— Вместо картинок надпись вроде Picture Removed

Картинки из тредов загружаются на внешние хостинги. Гарантировать их сохранность мы не можем (в отличии от самих тредов), хотя бэкап с недавних пор делается. Как скачать все картинки из треда, читайте в следующем ответе.
upd. Возможно, вы пользуетесь устаревшим или малоизвестным браузером. В таком случае, сервер может просто блокировать выдачу картинки.

Как сохранить тред со всеми картинками?

Учитывая, что картинки хранятся на внешних сервисах, скачать их на стороне сервера нет возможности, но можно воспользоваться следующим способом:
1. Установите дополнение Mozilla Archive Format на Firefox. Оно необходимо для полного сохранения страницы — без него может не работать.
2.

Раскройте все картинки с помощью «» в правом верхнем углу страницы треда, и, желательно, подождите их загрузки. После загрузки всех изображений, можете свернуть их обратно.
3. Сохраните страницу по Ctrl+S как «Веб-страница, полностью».
Полные версии картинок будут сохранены вместе со страницей.

У многих процессоров Intel есть поддержка технологии под названием Hyper-threading. Данная технология позволяет выполнять сразу 2 потока команд на одном ядре процессора. Таким образом удается более эффективно использовать вычислительную мощность ядра. Но, технология Hyper-threading используется далеко не во всех процессорах Intel. Технология Hyper-threading присутствует в процессорах Core i3, Core i7, а также в некоторых новых Pentium и мобильных Core i5.

У процессоров AMD с архитектурой Zen также есть технология, создающая по два потока вычислений на ядро. И у AMD также не все процессоры получают поддержку данной технологии.

Из-за такого разброса в характеристиках процессоров создается путаница и пользователи часто не могут разобраться, в каких процессорах сколько потоков используется.

В данной статье речь пойдет о том, как узнать сколько потоков на вашем процессоре.

Способ № 1. Диспетчер задач.

Самый простой способ узнать сколько потоков в вашем процессоре, это посмотреть в «Диспетчере задач». Для открытия «Диспетчера задач» можно воспользоваться классической комбинацией клавиш CTRL-SHIFT-DELETE. Если у вас операционная система Windows 7 или более новая, то это можно сделать еще и с помощью CTRL-SHIFT-ESC.

После открытия «Диспетчера задач» нужно перейти на вкладку «Быстродействие».

Здесь будет отображаться загруженность процессора и оперативной памяти компьютера. В правой верхней части окна будет отображаться хронология загрузки ЦП. Особенностью данного графика является, то что нагрузка отображается отдельно для каждого из потоков процессора. Поэтому подсчитав количество окошек с графиками можно узнать сколько потоков в процессоре. Например, на скриншоте внизу, отображается 8 графиков с хронологией загрузки процессора, следовательно, на компьютере используется процессор с 8 потоками.

Если у вас Windows 8 или Windows 10, то хронология нагрузки на процессор может отображаться одним графиком. В этом случае вам нужно сначала переключиться на отображение хронологии по логическим процессорам (потокам). Для этого нужно кликнуть правой кнопкой мышки и выбрать «Изменить график – Логические процессоры».

После этого в «Диспетчере задач» появятся отдельные графики для каждого потока вашего процессора. Например, на скриншоте внизу отображается 4 графика, следовательно, в используемом процессоре 4 потока.

Кроме этого, в «Диспетчере задач» Windows 8/10 прямым текстом указывается сколько потоков в процессоре. Сразу под графиками есть блок с информацией. Там в строке «Логические процессоры» указано количество потоков процессора.

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

Способ № 2. Программы.

Пожалуй, самой известной программой для получения информации о характеристиках процессора является программа CPU-Z. Данная программа является бесплатной, и вы можете скачать ее с официального сайта. Если вы хотите узнать сколько потоков в процессоре, то вам нужно запустить CPU-Z на своем компьютере и посмотреть значение «Threads», которое находится в правом нижнем углу программы на вкладке «CPU». На скриншоте внизу видно, что у процессора 4 потока.

Кроме CPU-Z можно использовать и другие программы. Например, вы можете прибегнуть к бесплатной программе Speccy. Данная программа отображает массу технической информации о вашем компьютере.

Среди прочего с ее помощью можно узнать и количество потоков процессора. Для этого нужно перейти в раздел «CPU» и посмотреть значение «Threads».

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*