Здравствуйте, CFA, Вы писали:
CFA>Есть многопоточное приложение. Под windows на delphi, но думаю это не важно. CFA>Есть ряд глобальных переменных которые могут читать/менять вспомогательные потоки, основной поток их только читает. CFA>Со сложными переменными вроде массивов, записей, объектов все понятно, и критические секции решительно нужны. CFA>А переменные простых типов — Integer/Word/Byte/etc — нужно ли оборачивать их чтение во вход/выход из КС?
Если изменяемое значение является счётчиком (или подобным), то без Interlocked* функций не обойтись!
А если у вас просто флаговое предназначение "слова", то достаточно просто выровнять "слово" на 4 байт, что бы обеспечить атомарность.