C Поток - это что?
Опубликованно 13.04.2018 01:57
Что футболка и компьютерной программы? Они состоят из большого числа нитей! В то время как сын футболка, удерживают ткани в виде паутины, C Поток (буквально «сын» или «поток») операционной системы объединяют все программы, чтобы достигнуть последовательного или параллельного действия. Каждый поток в программе определяет процесс, который выполняется, когда система (system Thread C). Это оптимизирует работу этого сложного устройства, как персональный компьютер и положительное влияние на ее эффективность и производительность. Определение
В ит-Поток, или поток выполнения, представляет собой наименьший последовательности команд, управляемых независимый планировщик, которая обычно является частью операционной системы.
Для потоков данных, как правило, установлен определенный приоритет, что означает, что некоторые сыновья имеют приоритет над другими. Как только процессор завершает обработку потока, он может выполнить следующий, в ожидании очереди. Как правило, ожидания не превышает нескольких миллисекунд. Компьютерные программы, реализующие «multi-threading», могут выполнять несколько потоков. Большинство ОПЕРАЦИОННЫХ систем, совместимых С Процессом на уровне системы. Это означает, что, когда программа пытается забрать все ресурсы процессора, система принудительно переключается на другие программы и заставляет программу поддержки процессора разделять ресурсы равномерно.
Термин «поток» (Thread), также может ссылаться на ряд сообщений в режиме чата. Веб-таблицы состоят из множества тем или веток. Ответы, отправленные в ответ на происхождение публикации, являются частью одного и того же потока данных. В электронной почте, поток может обратиться к серии ответов в виде команды «назад» и «далее», принадлежащих объявление, и структура дерева беседы.Многопоточность C Поток в Windows
В программировании, купили — это обработка заказа. Наоборот принимают — threading. Оба термина широко используются в сообществе функционального программирования.
Многопоточность похожа на многозадачность, но и позволяет одновременно обрабатывать несколько потоков, но не несколько процессов. Как поток меньше, и управляются более простые инструкции, многопоточность может также произойти внутри процессов.Примеры работы инструмента C Поток task
Многопоточная операционная система может одновременно выполнять несколько задач в фоновом режиме, таких как журнал изменений файлов, индексирование данных и управления окнами. Веб-браузеры поддерживают многопоточность, могут открывать несколько окон одновременно, работы JavaScript и Flash. Если программы полностью многопоточная, различные процессы не должны влиять друг на друга, если процессор достаточно энергии для их лечения.
Как многозадачность, многопоточность, повышает стабильность работы программы. Многопоточность может предотвратить сбой программы и избежать сбоя в работе компьютера. Так как каждый поток обрабатывается отдельно, ошибку в одном из них не в состоянии нарушить работу вашего PC. Таким образом, multi-threading может привести к уменьшению сбоев в работе операционной системы в целом.
Многозадачность
Многозадачность способен обрабатывать несколько задач параллельно и также характеризует принципы работы компьютера. Процессор может обрабатывать различные процессы с абсолютной точностью. Тем не менее, он не лечит, что инструкции, отправленные с помощью программного обеспечения. Поэтому, чтобы в полной мере использовать функции ПРОЦЕССОРА, программное обеспечение должно быть в состоянии обрабатывать несколько задач одновременно, а также иметь многозадачность.Историческая ретроспектива
Первые операционные системы могут выполнять несколько программ одновременно, но не полностью поддерживается многозадачность. Программа может потреблять все ресурсы процессора при выполнении операции. Основные задачи операционной системы, такие как копирование файлов, не позволяют пользователю выполнять другие задачи (открытие или закрытие окна, например).
Современные операционные системы включают в себя полную поддержку многозадачности — различные программные решения могут работать одновременно, не мешая функции другой.
Многозадачность также повышает стабильность компьютера. Например, если процесс выйдет из строя, это не повлияет на работу других запущенных программ, так что компьютер обрабатывает каждый процесс отдельно. Это можно сравнить с процессом написания письма: если вы находитесь в середине листа и уже написал часть текста, но ваш веб-браузер неожиданно, вы не потеряете уже выполненную работу.
Простые и многопроцессорных систем
Осуществление непрерывного и технологий процессор по-разному, в зависимости от вашей операционной системы, но чаще всего поток является одним из важнейших элементов процесса. Одновременно несколько потоков могут существовать в одном процессе, выполнив и делить ресурсы. В частности, C Поток, потоки процесса используют в кооперативном режиме, исполняемый код и значение переменной в данный момент времени.
Системы с одним процессором, реализуют многопоточность во времени: центральный процессор (CPU) переключается между разными потоками программного обеспечения. Мульти-процессоров, а также в multi-core, система, количество потоков выполняется параллельно, каждый процессор или ядро делают новый поток.Типы потоков
Планированию процесса большинство современных ОПЕРАЦИОННЫХ систем поддерживают не только временное, и я понесу потоковой обработки, в то время как ядро операционной системы позволяет разработчикам управлять потоками, обеспечивая нужные функции через интерфейс системного вызова. Некоторые непрерывной реализации называются ядра потоков, в то время как легкие процессы (LWP) тип потока, который имеет такую же информацию состояния. Решения могут иметь потоков в пространстве пользователя, когда они используются с таймерами (Thread timer C), сигналы или другие методы, чтобы остановить их работу, делая вид tempo ad hoc.Потоки и процессы: различия
Потоки отличаются от классических процессов multi-OS следующие характеристики:
процесс, как правило, независимы, тогда как потоки существуют как подмножество процесса;
процесс несут гораздо больше информации, чем поток;
процессы имеют выделенного адресного пространства;
процессы взаимодействуют только через систему механизмов коммуникации;
переключение контекста между потоками в процессе быстрее, чем переключение контекста между процессами.Профилактическая и совместного планирования
В многопользовательских операционных систем превентивной многопоточность становится все более широко используемым подходом для контроля времени выполнения за счет переключения контекста. Тем не менее профилактическое планирования может привести к неконтролируемой программистов, приоритетов и проблем. Напротив, вместе, многопоточность опирается на поток дать контроль выполнения. Это может создать проблемы, если супруга многозадачности поток блокируется в ожидании ресурса.
Развитие технологий
До начала 2000-х годов, большинство компьютеров было всего лишь одноядерный процессор, который не имел аппаратных потока. В 2002 году компания Intel добилась поддержки одновременной многопоточности процессора Pentium 4, который носит название Hyper-Threading. В 2005 году был представлен процессор dual core Pentium D dual-core AMD Athlon 64 X2.
Процессоры в интегрированных системах с повышенными требованиями в отношении действий в реальном времени, способна поддерживать многопоточность, сокращение времени на переключение потоков, и применить файл реестра для каждого потока.Модель
Перечислим основные модели реализации.
1: 1 (потоки на уровне ядра) — темы, созданные пользователем в ядре, являются наиболее простым в реализации потоков. OS/2 и Win32 используют этот подход изначально, в то время как под Linux, библиотеки C Поток join реализует этот подход посредством NPTL или более старый LinuxThreads. Этот подход также используется, Solaris, NetBSD, FreeBSD, macOS и iOS.
N: 1 пользователь (поток) — эта модель предусматривает, что все потоки на уровне приложения, соответствующие одному запланированного объекта на уровне ядра. В этом подходе, переключение контекста может быть создан очень быстро, и, кроме того, он может даже осуществлять над сердцами, которые не поддерживают распространение лечение. Тем не менее, один из основных недостатков заключается в том, что он не имеет аппаратного ускорения процессоров multi-thread или компьютеры. Например: если поток, вы должны сделать, когда запрос ввода / вывода, весь процесс останавливается, и потоковая передача не может быть использован. В GNU Portable C Поток исключений используется, как поток обработки на уровне пользователя.
M: N (гибридный реализации) — модель содержит ряд поток приложений для целого N число клеток ядра, или «виртуальных процессоров». Это компромисс между потоками на уровне ядра («1: 1») и пользователем («N: 1»). Система распространения «M: N», является более сложным, потому что изменения необходимы, что код ядра и код пользователя. В реализации M: N, библиотеки обработки потока отвечает за планирование потоков в объекты, предусмотренные. Это делает контекст лучше, так как она позволяет избежать вызовов системы. Однако, это увеличивает сложность и вероятность разворота, так как суб-оптимального планирования огромный (и дорогой) координация между планировщик среды пользователя, и планировщик ядра.
Примеры гибридных реализации — включение планировщика, используется реализация интегрированной библиотеки POSIX NetBSD (для модели M: N, в отличие от модели реализации ядра 1: 1, или модели в пространстве пользователя).
Легкие процессы, используемые в более ранних версиях операционной системы Solaris (инструменты Std Поток C).Поддержка языка программирования
Многие формальные системы поддерживают функцию потока. Реализации C и C++ реализации этой технологии, и предоставляет API для операционной системы. Некоторые языки программирования более высокого уровня, таких как языки Java, Python .NET Framework, подвергают поток разработчикам при абстрактна конкретные различия в реализации потоков в среде выполнения. Другие языки расширения также попробовать абстрагироваться от понятия параллелизма и распространение разработчика. Некоторые языки предназначены для серии параллелизма с использованием графических процессоров.
Ряд языков сценариев внедрения, которые поддерживают распространение и параллельной обработки данных, но не одновременно запущенных потоков для глобальной блокировки интерпретатора (GIL). ГИЛ-это блокировка взаимного исключения, выполняется с помощью интерпретатора, который может предотвратить как интерпретировать код программы на два или несколько потоков одновременно, ограничение параллелизма в многоядерных системах.
Осуществление других скриптовых языков программирования, таких как Tcl, используют расширение Потока sleep C. Это позволяет избежать максимального предела ГИЛ, используя модель, в которой содержание и код должны быть явно «общего» между потоками.
Языки программирования, ориентированные на события, таких как Verilog, и расширение Потока sleep C, другая модель потока, которая поддерживает максимальное их количество для моделирования оборудования.
Удобный multi-threading
Многопоточные библиотеки бросают вызов функции, чтобы создать новый поток, который принимает функциональное значение в качестве параметра. Затем он создает новый параллельный поток и запускает процесс обработки запущен, а затем вернуться. Языки программирования содержат библиотеки потоков, включая функцию синхронизации, которая позволяет создать и успешно реализовать многопоточность при условии отсутствия ошибок, используя мьютексы, переменные, условия, секций, мониторы, и другие типы синхронизации.
Категория: Hi-Tech