http://cbuilder.ru

Создание многопоточных приложений

Сначала поговорим о разработке многопоточных приложений,
а потом — об особенностях разработки многопоточных приложений в C++Builder
Введение.
Программа, выполняющая несколько действий одновременно, создает объекты, которые называются потоками или нитями (threads).
Когда приложение выполняется, оно загружено в память, готовую к выполнению. В этой точке оно становится процессом, содержащим один или более потоков, которые содержат данные, код и другие системные ресурсы для программы.
Поток выполняет одну часть приложения и ему выделяется процессорное время операционной системой.
Все потоки процесса совместно используют то же самое адресное пространство и могут обратиться к глобальным переменным процесса, т.е. все потоки одного процесса имеют совместный доступ к его ресурсам. Каждый процесс представляет собой один начальный поток, который называется первичным потоком
Первичный поток может создавать вторичные потоки. Операционная система отслеживает список всех потоков и циклически переключается между ними, выделяя каждому потоку часть времени центрального процессора. По завершении времени, выделенного определенному потоку, система запоминает текущее состояние регистров ЦП и ссылку на команду, которая должна была выполниться следующей в данном потоке. Затем система выбирает другой поток, восстанавливает зафиксированное для него состояние регистров ЦП и продолжает выполнение с той команды, на которой оно было приостановлено в прошлый раз.
То есть, в случае организации различных потоков в нескольких точках, программа будет выполняться в нескольких местах одновременно. Когда следует создавать дополнительные потоки ? Также, при создании потоков следует учитывать, что слежение за слишком многими потоками потребляет процессорное время; рекомендованный предел — 16 активных потоков на процесс на системах с одним процессором.



1.    Разработка многопоточных приложений в Windows.(Under construction...)

2. Разработка многопоточных приложений в C++Builder