Контекст
Конте́кст (от лат. contextus — «соединение», «связь») — законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение входящих в него отдельных слов, предложений, и т. п. Контекстуальность (обусловленность контекстом) — это условие осмысленного употребления той или иной конкретной языковой единицы в речи (письменной или устной), с учётом её языкового окружения и ситуации речевого общения.
Говорить, опираясь на контекст — значит, придерживаться установившегося в разговоре уровня абстракции и использовать понятия заданного в нём семантического поля. Потерять контекст в разговоре — это перестать понимать то, на что опирается собеседник, или интерпретировать его мысль в ином смысле, нежели тот, который подразумевает собеседник, исходя из заданного в разговоре семантического поля понятий.
В более широком значении контекст — среда, в которой существует объект (например, «в контексте эстетических представлений XIX века творчество Тернера было новаторским»).
С формальной точки зрения контекст представляет собой определенную систему отсчета, пространство имен.
Любое событие, происходящее в жизни субъекта, интерпретируется исходя из контекста ситуации, отражённой в памяти субъекта.
Контекстуальный (от фр. contextue ) — обусловленный контекстом. Например: Контекстуальные связи слова.
Виды контекста
В лингвистике (прежде всего при анализе языков с SVO-структурой и написанием слева направо) различают левый и правый контексты. Левый контекст — те высказывания, которые находятся слева от данного слова, правый — то, что находится справа.
См. также
Литература
- Торсуева, Ирина ГеоргиевнаКонтекст // Лингвистический энциклопедический словарь. — М .: СЭ, 1990. — С. 238—239.
Ссылки
Контексты
В этом документе описывается роль контекстов в среде выполнения параллелизма. Поток, подключенный к планировщику, называется контекстом выполнения или просто контекстом. Функция параллелизма::wait и класс concurrency::Context позволяют управлять поведением контекстов. Используйте функцию wait для приостановки текущего контекста в течение указанного времени. Context Используйте класс, когда требуется больше контроля над тем, когда контексты блокируют, разблокируют и дают, или когда требуется перезаписать текущий контекст.
Среда выполнения с параллелизмом предоставляет планировщик по умолчанию, и таким образом не требуется создавать планировщик в приложении. Так как планировщик задач помогает точно настроить производительность приложений, рекомендуется начать с библиотеки параллельных шаблонов (PPL) или библиотеки асинхронных агентов, если вы не знакомы со средой выполнения параллелизма.
Функция ожидания
Функция параллелизма::wait совместно дает выполнение текущего контекста для указанного числа миллисекунда. Среда выполнения использует время получения для выполнения других задач. После истечения указанного времени среда выполнения перепланирует контекст для выполнения. Таким образом, wait функция может приостановить текущий контекст дольше, чем значение, указанное milliseconds для параметра.
Передача 0 (ноль) для milliseconds параметра приводит к приостановке текущего контекста до тех пор, пока все другие активные контексты не получат возможность выполнять работу. Это позволяет получить задачу всем другим активным задачам.
Пример
Пример, использующий wait функцию для получения текущего контекста, и таким образом позволяет выполнять другие контексты, см. в разделе «Практическое руководство. Использование групп расписаний для влияния на порядок выполнения».
Класс Context
Класс concurrency::Context предоставляет абстракцию программирования для контекста выполнения и предлагает две важные функции: возможность совместно блокировать, разблокировать и возвращать текущий контекст, а также возможность перезаписывать текущий контекст.
Совместная блокировка
Класс Context позволяет блокировать или давать текущий контекст выполнения. Блокировка или получение полезны, если текущий контекст не может продолжаться, так как ресурс недоступен.
Метод параллелизма::Context::Block блокирует текущий контекст. Контекст, блокируемый, дает свои ресурсы обработки, чтобы среда выполнения могли выполнять другие задачи. Метод параллелизма::Context::Unblock разблокирует заблокированный контекст. Метод Context::Unblock должен вызываться из другого контекста, отличного от вызываемого Context::Block . Среда выполнения создает параллелизм::context_self_unblock если контекст пытается разблокировать себя.
Для совместного блокирования и разблокировки контекста обычно вызывается параллелизм::Context::CurrentContext , чтобы получить указатель на Context объект, связанный с текущим потоком, и сохранить результат. Затем вызывается Context::Block метод для блокировки текущего контекста. Позже вызовите Context::Unblock отдельный контекст, чтобы разблокировать заблокированный контекст.
Необходимо соответствовать каждой паре вызовов и Context::Block Context::Unblock . Среда выполнения вызывает параллелизм::context_unblock_unbalanced при Context::Block последовательном вызове метода Context::Unblock без соответствующего вызова другого метода. Однако перед вызовом вам не придется Context::Block вызывать Context::Unblock . Например, если один контекст вызывается Context::Unblock Context::Block перед вызовом другого контекста для одного контекста, этот контекст остается разблокирован.
Метод concurrency::Context::Yield дает выполнение, чтобы среда выполнения могли выполнять другие задачи, а затем перепланировать контекст для выполнения. При вызове Context::Block метода среда выполнения не перепланируется контекст.
Пример
Пример, использующий Context::Block Context::Unblock методы и Context::Yield методы для реализации совместного класса семафора, см. в разделе «Практическое руководство. Использование класса Context для реализации кооперативного Семафора».
Превышение лимита подписки
Планировщик по умолчанию создает то же количество потоков, что и доступные аппаратные потоки. Вы можете использовать oversubscription для создания дополнительных потоков для заданного аппаратного потока.
Для вычислительных операций перезапись обычно не масштабируется, так как она приводит к дополнительным затратам. Однако для задач с высокой задержкой, например считывания данных с диска или из сетевого подключения, перезапись может повысить общую эффективность некоторых приложений.
Разрешать превышение лимита подписки следует только в потоке, созданном средой выполнения с параллелизмом. Oversubscription не влияет на вызов из потока, который не был создан средой выполнения (включая основной поток).
Чтобы включить oversubscription в текущем контексте, вызовите метод параллелизма::Context::Oversubscribe с заданным параметром _BeginOversubscription true . При включении oversubscription в потоке, созданном средой выполнения параллелизма, среда выполнения создает один дополнительный поток. После завершения всех задач, требующих перезаписи, вызовите Context::Oversubscribe параметр с заданным параметром _BeginOversubscription false .
Вы можете включить перезаписи несколько раз из текущего контекста, но вы должны отключить его одинаковое количество раз, когда вы включите его. Oversubscription также можно вложить; То есть задача, созданная другой задачей, которая использует oversubscription, также может перезаписывать его контекст. Однако если и вложенная задача, и ее родительский элемент относятся к одному контексту, вызывается только самый внешний вызов, вызывающий Context::Oversubscribe создание дополнительного потока.
Среда выполнения создает параллелизм::invalid_oversubscribe_operation , если превышение избыточности отключено до включения.
Пример
Пример, использующий oversubscription для смещения задержки, вызванной чтением данных из сетевого подключения, см. в статье «Практическое руководство. Использование oversubscription для смещения задержки».
Значение слова «контекст»
Источник (печатная версия): Словарь русского языка: В 4-х т. / РАН, Ин-т лингвистич. исследований; Под ред. А. П. Евгеньевой. — 4-е изд., стер. — М.: Рус. яз.; Полиграфресурсы, 1999; (электронная версия): Фундаментальная электронная библиотека
- Конте́кст (от лат. contextus — «соединение», «связь») — законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение входящих в него отдельных слов, предложений, и т. п. Контекстуальность (обусловленность контекстом) — условие осмысленного употребления той или иной конкретной языковой единицы в речи (письменной или устной), с учётом её языкового окружения и ситуации речевого общения. Говорить, опираясь на контекст, — значит придерживаться установившегося в разговоре уровня абстракции и использовать понятия заданного в нём семантического поля. Потерять контекст в разговоре означает перестать понимать то, на что опирается собеседник, или интерпретировать его мысль в ином смысле, нежели тот, который подразумевает собеседник, исходя из заданного в разговоре семантического поля понятий. В более широком значении контекст — среда, в которой существует объект (например, «в контексте эстетических представлений XIX века творчество Тёрнера было новаторским»). С формальной точки зрения контекст представляет собой определённую систему отсчета, пространство имён. Любое событие, происходящее в жизни субъекта, интерпретируется исходя из контекста ситуации, отражённой в памяти субъекта. Контекстуальный (от фр. contextue) — обусловленный контекстом. Например: Контекстуальные связи слова. Согласно новому стандарту ISO 9001 версии 2015 года пункт 4.1. требуется чтобы организация понимала, отслеживала и анализировала контекст, в котором она работает. Под контекстом в стандарте понимаются внешние и внутренние факторы, а также сопутствующие им риски, которые существенны с точки зрения целей и стратегического направления организации и которые влияют на способность системы менеджмента качества организации достигать ожидаемого результата(ов). В официальном переводе ГОСТ Р ИСО 9001-2015 англоязычный термин «Сontext» переведён как «Среда организации».
- КОНТЕ’КСТ, а, м. [латин. contextus — сплетение, соединение] (филол.). Связное словесное целое по отношению к входящему в него определенному слову или фразе. Надо взять фразу в контексте, и тогда она станет понятной.
Источник: «Толковый словарь русского языка» под редакцией Д. Н. Ушакова (1935-1940); (электронная версия): Фундаментальная электронная библиотека
конте́кст
1. филол. относительно законченный в смысловом отношении отрезок письменной или устной речи, текста, содержащий данное слово, выражение и т. п. ◆ Ибо под тем миром, который мы не должны любить, апостол разумеет, как ясно из контекста, никак не собрание наших ближних и не совокупность творения, возвещающего славу Божию, а именно только темную, бессмысленную основу материальной природы, выходящую из своего должного, пассивного и потенциального положения и беззаконно вторгающуюся в область человеческого духа: тут же прямо говорится, что все в мире есть похоть плоти, т. е. стремление безмерной чувственности, похоть очей, т. е. жадность, или корыстолюбие, и гордость житейская, т. е. тщеславие и властолюбие. В. С. Соловьев, «Оправдание добра», 1894–1899 г. (цитата из НКРЯ) ◆ Но положим, что все это ― формальные доказательства, положим, что я старательно подобрал контексты, варианты, старательно скрыл все то, что было против моего толкования; положим, что толкования церкви очень ясны и убедительны и что Христос действительно не нарушал закон Моисея, а оставил его во всей силе. Л. Н. Толстой, «В чем моя вера?», 1884 г. (цитата из НКРЯ) 2. книжн. совокупность фактов и обстоятельств, в окружении которых происходит какое-либо событие, существует какое-либо явление, какой-либо объект 3. комп. совокупность значений регистров, состояний флагов и т. п. процессора в ходе выполнения программного процесса ◆ Когда ядро выполняет переключение контекста и восстанавливает контекст процесса, процесс возобновляет выполнение с точки приостанова.
Фразеологизмы и устойчивые сочетания
- левый контекст
- правый контекст
- вырвать из контекста
- прагматический контекст
- речевой контекст
- экзистенциальный контекст
- ситуационный контекст
- акциональный контекст
- психологический контекст
Делаем Карту слов лучше вместе
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я стал чуточку лучше понимать мир эмоций.
Вопрос: диспергирование — это что-то нейтральное, положительное или отрицательное?
Класс Context
Планировщик среды выполнения параллелизма (см . Планировщик) использует контексты выполнения для выполнения рабочих очередей приложения. Поток Win32 является примером контекста выполнения в операционной системе Windows.
В любое время уровень параллелизма планировщика равен количеству виртуальных процессоров, предоставленных ему Resource Manager. Виртуальный процессор — это абстракция для ресурса обработки и сопоставление с аппаратным потоком в базовой системе. Только один контекст планировщика может выполняться на виртуальном процессоре в определенное время.
Планировщик является совместным в природе, и исполняемый контекст может дать его виртуальный процессор другому контексту в любое время, если он хочет ввести состояние ожидания. Когда оно будет удовлетворено, оно не может возобновить работу до тех пор, пока доступный виртуальный процессор из планировщика начнет его выполнение.
Иерархия наследования
Требования
Заголовок: concrt.h
Пространство имен: concurrency
Заблокировать
Блокирует текущий контекст.
static void __cdecl Block();
Замечания
В результате этого метода в процессе будет создан планировщик по умолчанию и/или присоединен к вызывающему контексту, если отсутствует планировщик, в данный момент связанный с вызывающим контекстом.
Если вызывающий контекст выполняется на виртуальном процессоре, виртуальный процессор найдет другой запускаемый контекст для выполнения или потенциально может создать новый.
Block После вызова или вызова метода необходимо связать его с вызовом метода разблокировки из другого контекста выполнения, чтобы он снова выполнялся. Помните, что между точкой, в которой код публикует его контекст для другого потока, должен иметь возможность вызывать Unblock метод и точку, в которой выполняется фактический вызов Block метода. Во время этого периода не следует вызывать ни один метод, который может блокировать и разблокировать по своим собственным причинам (например, получение блокировки). Block Вызовы и Unblock метод не отслеживают причину блокировки и разблокировки. Только один объект должен иметь владение парой Block — Unblock .
Этот метод может вызывать различные исключения, включая scheduler_resource_allocation_error.
~Контексте
virtual ~Context();
CurrentContext
Возвращает указатель на текущий контекст.
static Context* __cdecl CurrentContext();
Возвращаемое значение
Указатель на текущий контекст.
Замечания
В результате этого метода в процессе будет создан планировщик по умолчанию и/или присоединен к вызывающему контексту, если отсутствует планировщик, в данный момент связанный с вызывающим контекстом.
GetId
Возвращает идентификатор контекста, уникального в планировщике, к которому принадлежит контекст.
virtual unsigned int GetId() const = 0;
Возвращаемое значение
Идентификатор контекста, уникального в планировщике, к которому принадлежит контекст.
GetScheduleGroupId
Возвращает идентификатор группы расписаний, над которым в настоящее время работает контекст.
virtual unsigned int GetScheduleGroupId() const = 0;
Возвращаемое значение
Идентификатор группы расписаний, над которым в настоящее время работает контекст.
Замечания
Возвращаемое значение из этого метода является мгновенной выборкой группы расписаний, в которую выполняется контекст. Если этот метод вызывается в контексте, отличном от текущего контекста, значение может быть устаревшим в момент возврата и полагаться на него нельзя. Как правило, этот метод используется только для отладки или трассировки.
GetVirtualProcessorId
Возвращает идентификатор виртуального процессора, в который в настоящее время выполняется контекст.
virtual unsigned int GetVirtualProcessorId() const = 0;
Возвращаемое значение
Если контекст в настоящее время выполняется на виртуальном процессоре, идентификатор виртуального процессора, в который в данный момент выполняется контекст; в противном случае — значение -1 .
Замечания
Возвращаемое значение из этого метода является мгновенной выборкой виртуального процессора, в который выполняется контекст. Это значение может быть устаревшим в момент возврата, и на него нельзя полагаться. Как правило, этот метод используется только для отладки или трассировки.
Артикул
Возвращает идентификатор текущего контекста, уникального в планировщике, которому принадлежит текущий контекст.
static unsigned int __cdecl Id();
Возвращаемое значение
Если текущий контекст присоединен к планировщику, идентификатор текущего контекста, уникального в планировщике, к которому принадлежит текущий контекст; в противном случае — значение -1 .
IsCurrentTaskCollectionCanceling
Возвращает значение, указывающее, находится ли коллекция задач, которая в настоящее время выполняется встроенным образом в текущем контексте, находится в разгар активной отмены (или будет в ближайшее время).
static bool __cdecl IsCurrentTaskCollectionCanceling();
Возвращаемое значение
Если планировщик подключен к контексту вызова, а группа задач выполняет встроенную задачу в этом контексте, указывает, находится ли эта группа задач в разгар активной отмены (или будет в ближайшее время); в противном случае — значение false .
IsSynchronouslyBlocked
Определяет, блокируется ли контекст синхронно. Контекст считается синхронно заблокированным, если он явно выполнил действие, которое привело к блокировке.
virtual bool IsSynchronouslyBlocked() const = 0;
Возвращаемое значение
Блокируется ли контекст синхронно.
Замечания
Контекст считается синхронно заблокированным, если он явно выполнил действие, которое привело к блокировке. В планировщике потоков это означает прямой вызов метода Context::Block или объекта синхронизации, который был создан с помощью метода Context::Block .
Возвращаемое значение из этого метода является мгновенным примером того, блокируется ли контекст синхронно. Это значение может быть устаревшим, когда он возвращается, и его можно использовать только в определенных обстоятельствах.
Оператор delete
Context Объект уничтожается внутренне средой выполнения. Его невозможно удалить явно.
void operator delete(void* _PObject);
Параметры
_PObject
Указатель на объект, который нужно удалить.
Oversubscribe
Внедряет дополнительный виртуальный процессор в планировщик в течение длительности блока кода при вызове контекста, выполняемого на одном из виртуальных процессоров в этом планировщике.
static void __cdecl Oversubscribe(bool _BeginOversubscription);
Параметры
_BeginOversubscription
Если true значение указывает, что дополнительный виртуальный процессор должен быть добавлен в течение чрезмерного времени. Если false указывает, что перезапись должна заканчиваться, а ранее добавленный виртуальный процессор должен быть удален.
ScheduleGroupId
Возвращает идентификатор группы расписаний, над которым работает текущий контекст.
static unsigned int __cdecl ScheduleGroupId();
Возвращаемое значение
Если текущий контекст присоединен к планировщику и работает над группой расписаний, идентификатор группы планировщика, над которым работает текущий контекст; в противном случае — значение -1 .
Разблокировать
Разблокирует контекст и приводит к его запуску.
virtual void Unblock() = 0;
Замечания
Это совершенно законно для вызова Unblock метода, который будет поступать перед соответствующим вызовом метода Block . Если вызовы Block и Unblock методы правильно связаны, среда выполнения правильно обрабатывает естественную расу любого порядка. Вызов Unblock , поступающий перед вызовом Block , просто отрицает эффект Block вызова.
Существует несколько исключений, которые можно вызвать из этого метода. Если контекст пытается вызвать Unblock сам метод, возникнет исключение context_self_unblock . Если вызовы Block и Unblock не связаны должным образом (например, для Unblock контекста, выполняющегося в данный момент), создается исключение context_unblock_unbalanced .
Помните, что между точкой, в которой код публикует его контекст для другого потока, должен иметь возможность вызывать Unblock метод и точку, в которой выполняется фактический вызов Block метода. Во время этого периода не следует вызывать ни один метод, который может блокировать и разблокировать по своим собственным причинам (например, получение блокировки). Block Вызовы и Unblock метод не отслеживают причину блокировки и разблокировки. Только один объект должен иметь владение Block и Unblock пару.
VirtualProcessorId
Возвращает идентификатор виртуального процессора, на который выполняется текущий контекст.
static unsigned int __cdecl VirtualProcessorId();
Возвращаемое значение
Если текущий контекст подключен к планировщику, идентификатор виртуального процессора, на который выполняется текущий контекст; в противном случае — значение -1 .
Замечания
Возвращаемое значение из этого метода является мгновенной выборкой виртуального процессора, в который выполняется текущий контекст. Это значение может быть устаревшим в момент возврата, и на него нельзя полагаться. Как правило, этот метод используется только для отладки или трассировки.
Yield
Уступает выполнение, чтобы мог выполняться другой контекст. Если доступных контекстов для уступки выполнения нет, планировщик может уступить выполнение другому потоку операционной системы.
static void __cdecl Yield();
Замечания
В результате этого метода в процессе будет создан планировщик по умолчанию и/или присоединен к вызывающему контексту, если отсутствует планировщик, в данный момент связанный с вызывающим контекстом.
YieldExecution
Уступает выполнение, чтобы мог выполняться другой контекст. Если доступных контекстов для уступки выполнения нет, планировщик может уступить выполнение другому потоку операционной системы.
static void __cdecl YieldExecution();
Замечания
В результате этого метода в процессе будет создан планировщик по умолчанию и/или присоединен к вызывающему контексту, если отсутствует планировщик, в данный момент связанный с вызывающим контекстом.
Эта функция является новой в Visual Studio 2015 и идентична функции Yield, но не конфликтует с макросом «Выход » в Windows.h.