10.1.1. Усложнение концепции — потоки

10.1.1. Усложнение концепции — потоки

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

Многие реализации Unix (включая каноническую версию AT&T System V) были перепроектированы, чтобы сделать потоки фундаментальным элементом планирования для ядра, и процесс превратился в коллекцию потоков, разделяющих ресурсы. Поскольку множество ресурсов разделяется между потоками, ядро может быстрее переключаться между потоками одного процесса, чем оно это делает при полноконтекстном переключении между процессами. В результате в большинстве ядер Unix существует двухуровневая модель процессов, которая различает потоки и процессы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

18.1. Концепции документации

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

18.1. Концепции документации В первую очередь необходимо определить различия между WYSIWYG-программами (WYSIWYG, "What You See Is What You Get" — "что видишь, то и получаешь") и инструментами разметки (Markup-Centered Tools). Большинство настольных издательских программ и текстовых процессоров входят в


А.1. Концепции

Из книги Объектно-ориентированный анализ и проектирование с примерами приложений на С++ автора Буч Гради

А.1. Концепции В настоящее время насчитывается более двух тысяч языков программирования высокого уровня. Большинство этих языков возникло исходя из конкретных требований некоторой предметной области. Каждый новый язык позволял переходить ко все более и более сложным


18.1. Концепции документации

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

18.1. Концепции документации В первую очередь необходимо определить различия между WYSIWYG-программами (WYSIWYG, "What You See Is What You Get" — "что видишь, то и получаешь") и инструментами разметки (Markup-Centered Tools). Большинство настольных издательских программ и текстовых процессоров входят в


Ключевые концепции

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Ключевые концепции [x]. Целью программной инженерии является нахождение путей построения ПО высокого качества. [x]. Качество ПО лучше всего видится как компромисс между целым рядом различных целей, а не как единый фактор. [x]. Внешние факторы, понятные пользователям и


Ключевые концепции

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

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


Ключевые концепции

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Ключевые концепции [x]. Для разработки ПО характерна повторяющаяся деятельность, включающая частое использование общих образцов (common patterns). Но имеются существенные вариации того, как используются и комбинируются эти образцы, так примитивные попытки работать с


Ключевые концепции

Из книги автора

Ключевые концепции [x]. Вычисление включает три вида ингредиентов: процессоры (или потоки управления), действия (или функции) и данные (или объекты). [x]. Архитектуру системы можно получить исходя из функций или из типов объектов. [x]. Описание, основанное на типах объектов, с


Ключевые концепции

Из книги автора

Ключевые концепции [x]. Теория абстрактных типов данных (АТД) примиряет необходимость в точности и полноте спецификаций с желанием избежать лишних деталей в спецификации.[x]. Спецификация абстрактного типа данных является формальным математическим описанием, а не текстом


Ключевые концепции

Из книги автора

Ключевые концепции [x]. Фундаментальная концепция объектной технологии основана на понятии класса. Класс это абстрактный тип данных, частично или полностью реализованный.[x]. Класс может иметь экземпляры, называемые объектами.[x]. Нельзя путать объекты (динамические


Ключевые концепции

Из книги автора

Ключевые концепции [x]. ОО-вычисления характеризуются высоко динамичной структурой времени выполнения, в которой объекты создаются только по запросу.[x]. Некоторые объекты, используемые ПО, являются моделями внешних объектов (обычно косвенными). Другие объекты служат


Ключевые концепции

Из книги автора

Ключевые концепции [x]. Подход к конструированию ПО, подобный конструированию из кубиков, требует возможности объединения нескольких абстракций в одну. Это достигается благодаря множественному наследованию.[x]. В самых простых и наиболее общих случаях множественного


Ключевые концепции

Из книги автора

Ключевые концепции [x]. К инварианту класса автоматически добавляются инварианты его родителей.[x]. В подходе Проектирования по Контракту наследование, переопределение и динамическое связывание приводят к идее субподрядов.[x]. Повторное объявление подпрограммы


Ключевые концепции

Из книги автора

Ключевые концепции [x]. Статическая типизация - залог надежности, читабельности и эффективности.[x]. Чтобы быть реалистичной, статической типизации требуется совместное применение механизмов: утверждений, множественного наследования, попытки присваивания, ограниченной и


Ключевые концепции

Из книги автора

Ключевые концепции [x]. При любом подходе к конструированию ПО возникает проблема работы с глобальными объектами, совместно используемыми компонентами разных модулей, и инициализируемыми в период выполнения, когда какой-либо из компонентов первым к ним обратился.[x].


10.2 Концепции TCP

Из книги автора

10.2 Концепции TCP В какой форме приложения должны пересылать данные в TCP? В каком виде TCP передает данные в IP? Каким образом передающий и принимающий протоколы TCP идентифицируют соединение между приложениями и необходимые для его реализации элементы данных? На все эти


5.5.1. Концепции сокетов

Из книги автора

5.5.1. Концепции сокетов При создании сокета необходимо задать три параметра, тип взаимодействия, пространство имен и протокол.Тип взаимодействия определяет способ интерпретации передаваемых данных и число абонентов. Данные, посылаемые через сокет, формируются в блоки,