Главная » Статьи для тега "очередь"

Архитектура JMS Spring

Добавлено Дата: 1 July, 2014 категория: Spring

Большинство из нас не раз пользовались услугами почты. Еже- дневно миллионы людей передают письма, открытки и посылки в руки почтальонов, будучи уверенными, что они будут доставлены

адресатам. Мир слишком велик, чтобы все эти отправления можно было передавать из рук в руки лично, поэтому мы полагаемся на почтовую службу. Мы обращаемся на почту, оплачиваем услуги за пересылку, передаем почтовое отправление и ни на секунду не за- думываемся, каким образом оно будет доставлено.

Читать »

Реализация архитектуры "поставщик/потребитель" в Visual C# (Sharp)

Добавлено Дата: 25 January, 2014 категория: C#

Методика "поставщик/потребитель" не реализована в виде типа, но применятся во многих многопоточных приложениях. Идея архитектуры "поставщик/потребитель" заключается в разбиении проблемы на две подпроблемы. С одной стороны нахится поставщик данных, информации и задач. Поставщик инкапсулирует инфоацию в задачу, которую нужно выполнить. Со другой стороны  находится потритель, ответственный за извлечение данных и их обработку.

Читать »

Потоки в процессе Android

Добавлено Дата: 22 August, 2013 категория: Разработка для Android

 

AsyncTask и ContentProvider вместе образуют очень мощную идиому, которая может быть адаптирована к разнообразным видам распространенных архитектур приложения. Почти любой паттерн «Модель-вид-контроллер» (MVC), в котором вид опрашивает модель, может (и, пожалуй, должен) реализовываться таким образом. Если архитектура приложения требует, чтобы модель отправляла изменения в вид, или в данной архитектуре модель является долгоживущей или работает непрерывно, одного только AsyncTask может быть недостаточно.

Читать »

Стеки и очереди STL

Добавлено Дата: 13 July, 2013 категория: C++, C++ Builder

Наверное, ни одна структура данных не применяется в компьютерной индустрии так широко, как стек. Операционные системы построены на этой простой структуре данных, и наверное каждый программист неоднократно получал радостное сообщение о переполнении стека  в  .своей программе.

Читать »

Сообщения и их структура

Добавлено Дата: 19 June, 2012 категория: Win32 API

Программирование в Windows основывается на использовании ин­терфейса прикладного программирования API (Application Program Interface). API предоставляют программисту набор готовых классов, функций, структур и констант. Их количество составляет около двух тысяч. API-функции обеспечивают взаимодействие приложения с внешними устройствами и ресурсами операционной системы.

Читать »

Алгоритм планирования – ЧАСТЬ 1

Добавлено Дата: 4 May, 2012 категория: Ядро Linux

В  предыдущих разделах  была  рассмотрена в  самых  общих  чертах  теория  работы планировщика процессов в операционной системе Linux.  Теперь, когда  мы  разобрались  с основами, можно более  глубоко  погрузиться в то, как  именно работает планировщик ОС  Linux.

Читать »

Очереди  отложенных действий

Добавлено Дата: 27 April, 2012 категория: Ядро Linux

Очереди  отложенных действий (work queue)  — это еще  один  способ  реализации отложенных операций, который отличается от рассмотренных ранее.  Очереди  действий  позволяют откладывать некоторые операции для  последующего выполнения потоком пространства ядра — отложенные действия всегда выполняются в контексте процесса. Поэтому код, выполнение которого отложено с помощью постановки в  очередь  отложенных действий, получает  все  преимущества, которыми обладает код, выполняющийся в контексте процесса. Наиболее важное свойство — это то, что выполнение очередей действий управляется планировщиком процессов и, соответственно, выполняющийся код может переходить в состояние ожидания (sleep).

Читать »

Лифтовой алгоритм Линуса – ЧАСТЬ 1

Добавлено Дата: 21 April, 2012 категория: Ядро Linux

Рассмотрим некоторые планировщики ввода-вывода, применяемые в  реальной жизни.  Первый планировщик ввода-вывода, который мы  рассмотрим,  называется Linus  Elevator (лифтовой алгоритм  Линуса). Это  не опечатка, действительно существует лифтовой планировщик,  разработанный Лисусом Торвальдсом и названный в его честь!  Это  основной планировщик ввода-вывода в ядре  2.4.  В ядре  2.6  его  заменили другими  планировщиками,  которые мы  ниже  рассмотрим. Однако поскольку этот  алгоритм  значительно проще новых  и в то же время  позволяет выполнять почти  те же функции, то он  заслуживает внимания.

Читать »

Работа с диалогами

Добавлено Дата: 21 February, 2012 категория: Microsoft SQL Server, Базы данных

После того как объект брокера служб создан, сообщения могут помещаться в очередь и извлекаться из нее. Сообщения существуют как часть общения, которое может быть разбито на группы взаимодействия.

Отправка сообщения в очередь

В следующем программном коде создается объект общения, использующий идентификатор GUro conversationhandle. Команда OPEN CONVERSATION открывает общение, а команда SEND непосредственно помещает сообщение в очередь:

Читать »

Реализация очереди на основе однонаправленного связного списка

Добавлено Дата: 16 January, 2012 категория: Java, Структуры данных и алгоритмы

АТД «очередь» также осуществляется на основе однонаправленного связного списка. Для наибольшей эффективности поместим начало очереди, где можно только удалять элементы, в начало списка, а конец очереди, где можно добавлять элементы, — в хвост списка (что плохого в добавлении элементов в начале списка и их удалении в конце?). Не следует забывать о необходимости сохранения ссылок на начальный и конечный узлы списка. Вместо описания всех подробностей представим во фрагменте кода 4.12 Java-реализацию базовых методов работы с очередями.

Читать »

Сортировка, множества и выборка

Добавлено Дата: 14 January, 2012 категория: Java, Структуры данных и алгоритмы

Второй закон термодинамики предполагает, что природа тяготеет к беспорядку, люди же предпочитают упорядоченность. И в самом деле, хранение данных в определенном порядке имеет ряд преимуществ. Например, бинарный поисковый алгоритм, приведенный в разделе 8.2, корректно работает только для упорядоченных векторов. Поскольку компьютеры предназначены для обеспечения деятельности человека, эта глава посвящена изучению сортирующих алгоритмов и их применению. Напомним, что проблема сортировки выглядит следующим образом. Допустим, S — последовательность из п элементов, которые можно сравнивать друг с другом в соответствии с их отношениями упорядоченности, то есть всегда возможно сравнить два элемента, чтобы определить, какой из них больше или меньше, или они равны. Задача состоит в реорганизации последовательности таким образом, чтобы элементы располагались в возрастающем (или в неубывающем, если они равны) порядке.

Читать »

Абстрактный тип данных «очередь»

Добавлено Дата: 5 December, 2011 категория: Java, Структуры данных и алгоритмы

Еще одной базовой структурой данных является очередь. Эта структура данных аналогична стеку, так как очередь объединяет объекты, работа с которыми — добавление и удаление — осуществляется по принципу FIFO (first-in first-out)(«первым пришел — первым ушел»). Добавление объектов в очередь может осуществляться в любое время, однако удаленным может быть лишь объект, который был добавлен первым. Говорят, что элементы добавляются в очередь с конца, а удаляются с начала. Можно сравнить очередь данных с очередью людей в парке аттракционов. Люди встают в очередь с конца, а те, кто был первым в очереди, катаются на аттракционе.

Читать »

Очереди ссылок Java

Добавлено Дата: 6 June, 2011 категория: Java

 

   Когда стадия достижимости объекта меняется, он может быть помещен в очередь ссылок (reference queue). Такие очереди используются сборщиком мусора для взаимодействия с прикладной программой при изменении стадий достижимости объектов. Это наилучший способ выявления подобных изменений, хотя иногда можно применять и средства явного опроса объектов.

Читать »

wait, notifyAll и notify Java

Добавлено Дата: 20 May, 2011 категория: Java

 

Механизмы синхронизированной блокировки позволяют успешно предотвратить возможное взаимное влияние нескольких потоков, но нам нужны, кроме Того, средства обеспечения взаимодействия потоков. С этой целью применяются метод ожидания, wait, позволяющий приостановить выполнение потока до того Момента, пока не будет удовлетворено определенное условие, и методы оnовеще1tuя, notifyAll и notify, которые сообщают ожидающим потокам о том, что произошло некое событие, способное повлиять на результат про верки условия Ожидания. Методы wait, notifyAll и notify определены в составе класса Object и наследуются всеми производными классами. Они применяются по отношению к конкретным объектам – точно так же, как и блокировки.

Читать »

Звуковые буферы iPhone

Добавлено Дата: 18 May, 2011 категория: iPhone

Звуковой буфер (sound buffer) содержит данные, которые находятся по пути к выводящему устройству. Возвратимся к нашей концепции ящика на ленточном конвейере: буфер — это ящик, переносящий ваш звук к динамикам. Если у вас нет достаточного количества звука для заполнения ящика, то он доставляется к динамикам не до конца заполненным, что может привести к интервалам в передаче аудио. Чем имеется у вас больше ящиков, тем больше звука вы можете заранее поместить в очередь, чтобы избежать интервалов (или замедлений). Обратной стороной всего этого является то, что для звука на конце динамика перехват звука, поставляемого приложением, занимает больше времени. Это может стать проблемой, если символ в вашей игре прыгает, но пользователь не слышит этого до тех пор, пока он не приземлится.

Читать »