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

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

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

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

Читать »

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

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

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

Читать »

ПАРАЛЛЕЛИЗМ В ANDROID

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

 

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

Обсуждая многопоточные (конкурентные) программы, разработчики часто говорят о том, что написание кода в виде нескольких потоков якобы подразумевает, что эти потоки будут выполняться одновременно, а также о том, что многопоточность в целом ускоряет выполнение программы. Разумеется, все не так просто. Если в распоряжении нет нескольких процессоров, которым можно поручить выполнение потоков, то программа, от которой требуется выполнять множественные, несвязанные, ограниченные по скорости вычислений задачи, будет решать эти задачи с одинаковой скоростью, независимо от того, реализованы они в разных потоках или в одном и том же потоке. В системе с одним процессором многопоточная версия программы может работать даже медленнее, чем однопоточная, из-за того, что дополнительные ресурсы будут тратиться на переключение контекста.

Читать »

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

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

 

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

Читать »

Дизайн приложения с потоками в CBuilder

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

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

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

Читать »

Основы многопоточности

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

До   этого   все   действия   в   наших   программах   выполнялись последовательно  –  одно  за  другим.  Если  программа  вызывает  два метода,  второй  метод  ждет,  пока  не  выполнится  первый.  Другими словами,  каждая   из  наших   программ   имеет   только   один   поток исполнения  (a thread).

Читать »

Содержимое пакета

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

Если в исходном файле отсутствует объявление package, то входящие в него типы считаются принадлежащими  к “безымянному” пакету.

К проектированию пакета следует подходить внимательно и включать в него только функционально связанные классы и интерфейсы. Классы пакета могут свободно обращаться к незакрытым членам друг друга. Защита членов класса предназначена для предотвращения некорректных действий со стороны классов, обладающих доступом к деталям внутренней реализации других классов. В пределах пакета не существует никаких ограничений доступа, кроме priv a te, и в итоге может получиться так, что посторонний класс получил к другим классам более близкий доступ, чем вам хотелось бы.

Читать »

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

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

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

Читать »

Реализация  потоков в ядре  Linux

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

Многопоточность — это  популярная сегодня  программная абстракция. Она  обеспечивает выполнение нескольких потоков в совместно используемом адресном пространстве памяти.  Потоки  также  могут  совместно использовать открытые файлы и другие  ресурсы. Многопоточность используется для  параллельного программирования (concurrent programming),  что  на  многопроцессорных  системах  обеспечивает истинный параллелизм.

Читать »

Адаптивный поток

Добавлено Дата: 29 March, 2012 категория: Silverlight

В последнее время все большее распространение получает адаптивный потоковый режим (adaptive streaming). Однако потоковый режим в нем лишь имитируется, а фак­тически используются обычный прогрессивный режим и протокол HTTP. На данный мо­мент приблизительно 65% веб-содержимого предоставляется в прогрессивном режиме. Сервер IIS имеет два средства, позволяющие настроить адаптивный поток, приближая его эффективность к эффективности настоящего потокового режима..

Читать »

Безопасность потоков и ThreadGroup

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

При программировании  работы нескольких потоков (часть которых создается библиотечными вызовами) бывает полезно отчасти ограничить их возможности, чтобы потоки не мешали друг другу.

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

Читать »

Назначение многопоточности

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

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

Читать »

Фильтрующие потоки

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

добавляют несколько новых конструкторов к базовым конструкторам классов InputStream и OutputStream. Им передается поток соответствующего  типа (входной или выходной), с которым необходимо соединить объект. позволяют объединять потоки в “цепочки” и тем самым создавать составной поток с большими возможностями. Приведенная программа печатает номер строки файла, в которой будет обнаружено первое вхождение заданного символа:

Читать »

Потоки данных

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

Хотя возможность чтения и записи байтовых потоков достаточно полезна, часто бывает необходимо пересылать в потоке данные определенного типа. Интерфейсы DataInput и DataOutput определяют методы для пересылки примитивных типов Java в потоке. Реализация этих интерфейсов по умолчанию представлена классами D ataInputStream и DataOutputStream.  Сначала мы рассмотрим интерфейсы, а затем их реализации.

Читать »

Стандартные типы потоков

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

Как видно из рис. 11.1, в пакете java.io определяются несколько типов потоков. Обычно они составляют пары ввода/вывода:

Конвейерные потоки Piped спроектированы для парного использования, при котором байты, записываемые в PipedOutputStream,  могут читаться из PipedInputStream.

Читать »