Code

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

Организация многопоточной модели непременно ведет к ситуации одновременного доступа к одному и тому же ресурсу. В данной статье будут даны общие сведения о потоках в операционных системах Windows и Linux, рассмотрены механизмы синхронизации, позволяющие предотвратить доступ к разделяемым ресурсам. Для Linux в статье рассмотрен интерфейс потоков, определенный стандартном POSIX.1-2001 (известный как «pthreads»).

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

Автор статьи – Эдуард Трунов, инженер-разработчик в Ауриге.

Вы можете скачать эту статью в формате PDF.