WikiDer > Объединения (библиотека параллелизма) - Википедия
Присоединяется асинхронный параллельные вычисления API (Шаблон соединения) из Microsoft Research для .NET Framework. Он основан на присоединиться к исчислению и делает конструкции параллелизма Cω язык доступен как Сборка CLI что любой CLI-совместимый язык можно использовать.
Обзор
Объединения можно использовать для выражения параллелизма в приложении с помощью шаблона объединений, который можно использовать как для многопоточных приложений, так и для событий на основе распределен Приложения. API Joins эмулирует декларативную типобезопасный выражение паттернов синхронизации.
Библиотека Joins эмулирует асинхронные и синхронные методы. Асинхронный метод на языке Cω и Joins - это метод, который не блокирует вызывающий метод и не возвращает никакого результата, тогда как синхронный метод блокирует вызывающий метод. В API объединений синхронные и асинхронные методы реализованы как общий делегаты. Использование дженериков обеспечивает безопасность типов. Например, можно создать набор синхронных и асинхронных методов и использовать их для создания объекта, реализующего шаблон, например:
общественный учебный класс ПрисоединитьсяДемо{ общественный только чтение Асинхронный.Канал<int> Очередь; общественный только чтение Асинхронный.Канал<нить> послать; общественный только чтение Синхронный<int>.Канал Забрать; частный Присоединиться joinPattern = Присоединиться.Создавать(); общественный ПрисоединитьсяДемо() { joinPattern.Инициализировать(из Очередь); joinPattern.Инициализировать(из послать); joinPattern.Инициализировать(из Забрать); }}
Когда вызываются асинхронные методы, параметры помещаются в канал, который представляет собой очередь, управляемую средой выполнения Joins. Метод может дополнительно запустить новый поток для обработки параметров в фоновом режиме и возврата результатов. Когда вызывается соответствующий синхронный метод, параметр возвращается для дальнейшей обработки. Если при вызове синхронного метода в очереди нет параметра, вызывающий останавливается. Расписание выполнения Joins, параметр которого возвращается в зависимости от того, готов ли он.
Шаблон синхронизации методов определяется присоединяется к шаблонам, который описывает, что происходит при вызове набора каналов. Например, что происходит, когда послать и Забрать называются вместе могут отличаться от послать и Очередь.
общественный пустота SetPatterns(){ присоединиться.Когда(послать).И(Забрать).Делать(s => s); присоединиться.Когда(Очередь).И(Забрать).Делать(п => п.Нанизывать()); присоединиться.Когда(послать).И(Очередь).И(Забрать).Делать(s => { послать(s); возвращаться Забрать(); });}
Рекомендации
внешняя ссылка
Эта статья о программном обеспечении, созданном или произведенном Microsoft это заглушка. Вы можете помочь Википедии расширяя это. |