Просто хочу немного прояснить это. Представьте, что я использую API Windows для EnterCriticalSection. Я называю их всех EnterCriticalSection(&criticalsection);
Это многопоточная функция потока.
void thread (){
//enter critical section (part 1)
data
//leave critical section
///more data 1
//entercritical section (part 2)
//more data 2
//leave critical section
}
Как только поток входит в критический (часть 1), другие потоки не могут войти в этот раздел независимо от того, есть ли у других данных 1 общие данные или нет? Также в это время другие потоки также не могут войти во вторую часть критического раздела.