Что такое контекст c
Перейти к содержимому

Что такое контекст c

  • автор:

Контексты

В этом документе описывается роль контекстов в среде выполнения параллелизма. Поток, подключенный к планировщику, называется контекстом выполнения или просто контекстом. Функция параллелизма::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. комп. совокупность значений регистров, состояний флагов и т. п. процессора в ходе выполнения программного процесса ◆ Когда ядро выполняет переключение контекста и восстанавливает контекст процесса, процесс возобновляет выполнение с точки приостанова.

Фразеологизмы и устойчивые сочетания
  • левый контекст
  • правый контекст
  • вырвать из контекста
  • прагматический контекст
  • речевой контекст
  • экзистенциальный контекст
  • ситуационный контекст
  • акциональный контекст
  • психологический контекст

Делаем Карту слов лучше вместе

Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!

Спасибо! Я стал чуточку лучше понимать мир эмоций.

Вопрос: угомон — это что-то нейтральное, положительное или отрицательное?

Что такое контекст? Более обширный взгляд

Стандартные библиотеки языка очень образные и что бы понять семантику контекста надо прежде всего обратиться к самому понятию «контекст» в общепринятом понимании, а не в специфике программирования: Конте́кст (от лат. contextus — «соединение», «связь») — законченный отрывок, общий смысл которого позволяет уточнить значение входящих в него отдельных слов, предложений, и т. п. _ _Говорить, опираясь на контекст, — значит придерживаться установившегося в разговоре уровня абстракции и использовать понятия заданного в нём семантического поля.

23 мар 2017 в 11:19

В более широком значении контекст — среда, в которой существует объект. С формальной точки зрения контекст представляет собой определённую систему отсчета, пространство имён. Любое событие, происходящее в жизни субъекта, интерпретируется исходя из контекста ситуации, отражённой в памяти субъекта.

23 мар 2017 в 11:19

В программировании понятие контекст имеет те же свойства и семантическую нагрузку — давать элементу переменные окружения, обуславливающие его работу

23 мар 2017 в 11:21
(: А по вопросу мне нечего ответить
23 мар 2017 в 11:22
@Tachkin, отличный ответ 🙂 Я плюсану, оформляйте. 🙂
23 мар 2017 в 11:40

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

класс Context содержит в себе всевозможную информацию о ресурсах системы, как уже было сказано в другом ответе. Конкретно в этом вопросе нас интересует, что он содержит, помимо прочего, и параметры темы (стилей) для отображения View

Почему в качестве контекста можно передать this? Это же ссылка на класс

Активити является наследником класса Context и несет в себе информацию о контексте для этой активити, поэтому мы можем использовать ссылку на именно этот класс в качестве контекста. С Fragment , к примеру, это уже не работает — он не наследуется от Context

Есть ли случаи когда надо передать именно getApplicationContext?

Тема (стиль) всего приложения и конкретной активити может отличаться (для активити в манифесте указан другой стиль). Тогда запрос контекста приложения и контекста активти вернет разное оформление View

Почему контекст нужен везде, где происходит работа с интерфейсом?

Потому что он содержит стиль для View

на остальные вопросы ответ тот же — в контексте содержится информация, как должен выглядеть View . Например, стиль кнопки темы Holo и темы AppCompat сильно отличается, в контексте и содержится эта информация.

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

UPD несколько важных замечаний по getApplicationContext() , не связанных с UI приложения из этой статьи

  1. контекст приложения следует использовать везде, где контекст необходимо передать за пределы жизненного цикла передающего компонента (в объекты, которые будут жить дольше, чем создавшая/вызвавшая их активность, например) во избежании удержания ссылки на этот компонент при использовании его собственного контекста и утечек памяти.
  2. во внешние библиотеки следует передавать контекст приложения по тем же причинам, что и п.1
  3. контекст приложения не имеет информации по особенностям GUI отдельной активити, если они отличаются от параметров всего приложения, в таких случаях нельзя использовать контекст приложения при работе с GUI этой активити.
  4. приложение (класс Application ) — синглтон и его контекст тоже синглтон, этот контекст может удерживать объекты с более коротким жизненным циклом и приводить к утечкам памяти, если не позаботиться о их корректной обработке GC

Контекст

Конте́кст (от лат. contextus — «соединение», «связь») — законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение входящих в него отдельных слов, предложений, и т. п. Контекстуальность (обусловленность контекстом) — это условие осмысленного употребления той или иной конкретной языковой единицы в речи (письменной или устной), с учётом её языкового окружения и ситуации речевого общения.

Говорить, опираясь на контекст — значит, придерживаться установившегося в разговоре уровня абстракции и использовать понятия заданного в нём семантического поля. Потерять контекст в разговоре — это перестать понимать то, на что опирается собеседник, или интерпретировать его мысль в ином смысле, нежели тот, который подразумевает собеседник, исходя из заданного в разговоре семантического поля понятий.

В более широком значении контекст — среда, в которой существует объект (например, «в контексте эстетических представлений XIX века творчество Тернера было новаторским»).

С формальной точки зрения контекст представляет собой определенную систему отсчета, пространство имен.

Любое событие, происходящее в жизни субъекта, интерпретируется исходя из контекста ситуации, отражённой в памяти субъекта.

Контекстуальный (от фр. contextue ) — обусловленный контекстом. Например: Контекстуальные связи слова.

Виды контекста

В лингвистике (прежде всего при анализе языков с SVO-структурой и написанием слева направо) различают левый и правый контексты. Левый контекст — те высказывания, которые находятся слева от данного слова, правый — то, что находится справа.

См. также

Литература

  • Торсуева, Ирина ГеоргиевнаКонтекст // Лингвистический энциклопедический словарь. — М .: СЭ, 1990. — С. 238—239.

Ссылки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *