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

Асинхронный подход в Visual C# (Sharp)

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

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

Читать »

Преобразование двоичного потока в текстовый поток в Visual C# (Sharp)

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

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

в  текст .  Дале е  приведе н  исходны й  ко д  дл я  выполнени й   все х  эти х  шагов .  (Дл я  пра – вильно й  работ ы  код а  В Binary2Text необходим о создат ь  ссылк у  на  LottoLibrary.)

Читать »

Преобразование текстового потока в двоичный в Visual C# (Sharp)

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

Процесс преобразования текстового потока в двоичный поток включает разбиение текстового потока на части, создание экземпляра Ticket, присвоение значений членам данных экземпляра и передачу экземпляра двоичному потоку. Далее продится исходный код для выполнения всех этих шагов. (Для правильной работы кода в Text2Binary необходимо создать ссылку на LottoLibrary.)

Читать »

Создание потока, имеющего состояние в Visual C# (Sharp)

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

В предыдущем примере потоки не управляли никаким состоянием. В большинстве же случаев потоки обращаются к какому-либо состоянию. Использование состоий в контексте анонимных методов и лямбда-выражений представляет собой сложную задачу. (Подробности об управлении состоянием с помощью лямбдыражений см.  в главе 11.)

Читать »

Использование потоков в Visual C# (Sharp)

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

На компьютерах под управлением операционной системы Windows задачи могут выполняться двумя способами: посредством потоков и посредством процессов. Процесс  представляет  собой  исполнение   программы,   для   которой   операциоая  система  выделяет  ресурсы,  включающие,  между  прочих,  и  кванты  времени. А поток — это легковесный процесс, исполняемый в контексте главного процесса.

Читать »

Определение интерфейсов и реализация оболочки в Visual C# (Sharp)

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

В .NET существуют потоки данных двух типов: двоичных и текстовых. Типы Textwriter и TextReader используются для работы с потоками текстовых данных. Как было продемонстрировано типом stringReader, при работе с потоками текстых данных можно делать определенные предположения, например, где начинаюя текстовые строки. Но в случае с потоками двоичных данных такие предположия не являются возможными. Потоки двоичных данных имеют свои форматы, которые известны лишь программам, предназначенным для их создания и чтения.

Читать »

Непрерывная прорисовка с SurfaceView – РАЗРАБОТКА ИГР ДЛЯ ОС ANDROID

Добавлено Дата: 18 July, 2013 категория: Программирование игр под Android

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

Мотивация. Когда мы в первый раз осуществляли непрерывную прорисовку, то делали это неправильно. Интенсивно использовать пользовательский поток не стоит; нам необходимо решение, делающее всю грязную работу в отдельном потоке. Встречайте SurfaceView.

Читать »

Синхронизация и потоковая безопасность – JAVA ДЛЯ ANDROID

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

 

Когда два или более работающих потока имеют доступ к одному и тому же набору переменных, потоки могут изменять эти переменные, причем так, что возможно повреждение данных или нарушение логики одного или нескольких из этих потоков. Подобные ненамеренные ошибки конкурентного доступа называются нарушениями безопасности потоков (thread safety violations). Их сложно воспроизводить, сложно находить и сложно тестировать.

Читать »

Работа с потоками в форме CBuilder

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

Чтобы работать с потоком, надо его создать. Это поручается форме, содержащей поток, и осуществляется простым вызовом оператора new для создания нового объекта «поток». В нашем примере мы создадим поток при создании формы. Создайте обработчик события формы OnCreate и поместите в метод FormCreate следующий код:

Читать »

Программа поиска в потоке CBuilder

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

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

Читать »

Простой пример потока в CBuilder

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

В нашем первом примере мы начнем с внутренних особенностей работы с потоками. Мы создадим простую форму, которая использует поток для обновления текста на экране. Форма позволит вам приостанавливать (pause), вновь запускать (resume) и останавливать (stop) выполнение потока. В то же время поток будет отображать числа на экране. Мы исследуем процесс создания потока и добавления объекта «поток» в вашу программу.

Читать »

Класс StreamTokenizer

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

Разделение входного потока на отдельные лексемы встречается довольно часто, поэтому пакет java.io содержит специальный класс StreamTokenizer для выполнения простейшего лексического анализа. В настоящее время этот класс в полной мере работает лишь с младшими 8 битами Unicode, составляющими подмножество символов Latin-1, поскольку внутренний массив класса, хранящий информацию о категориях символов, состоит только из 256 элементов. Символы, превышающие \u00ff, считаются алфавитными. Хотя в подавляющем большинстве случаев это действительно так (собственно, большая часть символов относится к алфавитным), вы, например, не сможете назначить в качестве ограничителя символ ‘?‘ (\u270D). Даже с учетом этого условия выделение лексем во многих случаях происходит нормально.

Читать »

Взаимная блокировка

Добавлено Дата: 28 April, 2012 категория: Java

Если вы имеете дело с двумя потоками и с двумя блокируемыми объектами, может возникнуть ситуация взаимной блокировки (deadlock), при которой каждый объект дожидается снятия блокировки с другого объекта. Представим себе, что объект X содержит синхронизированный метод, внутри которого вызывается синхронизированный метод объекта Y, который, в свою очередь, также содержит синхронизированный метод для вызова синхронизированного метода объекта X. Каждый объект ждет, пока с другого объекта не будет снята блокировка, и в результате ни один из них не работает. Подобная ситуация иногда называется “смертельными объятиями” (deadly embrace). Рассмотрим сценарий, в соответствии с которым объекты jareth и cory относятся к некоторому классу Friend ly:

Читать »

Класс Seq uenceInputStream

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

Класс SequenceInputStream создает единый входной поток, читая данные из одного или нескольких входных потоков: сначала первый поток читается до самого конца, затем — следующий за ним, и так далее, до последнего потока. Этот класс содержит два конструктора: один — для простейшего случая двух входных потоков, которые передаются в качестве параметров конструктора; другой конструктор предназначен для произвольного количества входных потоков, в нем используется абстрактное представление Enumeration, описанное в главе 12. Реализация интерфейса Enumeration позволяет получить упорядоченный список объектов любого типа. Для потока Sequence InputStream перечисление может содержать только объекты типа Input Stream. Если в нем окажется что-либо еще, то при попытке получения объекта из списка возбуждается исключение SequenceInputStream.

Читать »

Планирование потоков

Добавлено Дата: 18 April, 2012 категория: Java

Java может работать как на однопроцессорных,  так и на многопроцессорных компьютерах, в однопоточных и многопоточных системах, так что в отношении потоков даются лишь общие гарантии. Вы можете быть уверены в том, что исполнимый (runnable) поток с наивысшим приоритетом будет работать и что все потоки с тем же приоритетом получат некоторую долю процессорного времени. Функционирование  потоков с низшим приоритетом гарантируется лишь в случае блокировки всех потоков с высшим приоритетом. /Читателю следует отличать блокировку объекта (lock), о которой говорилось выше, от блокировки потока (block). Терминология, сложившаяся в отечественной литературе, может стать источником недоразумений. – Примеч. перев./ На самом деле не исключено, что потоки с низшим приоритетом будут работать и без таких решительных мер, но полагаться на это нельзя.

Читать »