Локальные данные потока

Глава 29. Потоки и процессы



Содержание / Глава 29. Потоки и процессы


Интересная проблема возникает, если в приложении будет несколько одинаковых потоков. Как избежать совместного использования одних и тех же переменных несколькими потоками? Первое, что приходит на ум, — добавить и использовать поля объекта — потомка TThread, которые можно добавить при его создании. Каждый поток соответствует отдельному экземпляру объекта, и их данные пересекаться не будут. (Кстати, это одно из больших удобств использования класса TThread.) Но есть функции API, которые знать не знают об объектах Delphi и их полях и свойствах. Для поддержки разделения данных между потоками на нижнем уровне в язык Object Pascal введена специальная директива — threadvar, которая отличается от директивы описания переменных var тем, что применяется только к локальным данным потока. Следующее описание:

Var

datal: Integer; threadvar

data2: Integer;

означает, что переменная datal будет использоваться всеми потоками данного приложения, а переменная data2 будет у каждого потока своя.


Содержание

Тематическое содержание

Скачать примеры

Вам помог сайт?



Онлайн учебник Borland Delphi 7 с примерами





© SUPPORT.UZ 2008-2017