|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.09.2011, 18:49 | #1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Критические секции
Не когда не приходилось с ними сталкиваться, поэтому появился вопрос что это такое и как ее хавать?
Наткнулся на сайте одном, вот на такой пример: http://www.firststeps.ru/mfc/winapi/r.php?116 Вообщем понял или не совсем понял то что, при входе в критическую секцию на разных потоках, один к примеру глобальный массив считается якобы за разный. Но все равно не понятно, каков итоговый результат после использования критических секций, я если обращусь к нему без всяких крит. секций. То есть например в одной крит. секции некий массив суммировался, в другой он сортировался, что в итоге выйдет не понимаю. |
08.09.2011, 19:12 | #2 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Наткнулся на этот код:
Код:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
08.09.2011, 19:42 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Критическую секцию можно представить как лужайку, окружённую со всех сторон нерушимым забором. В заборе две калитки — одна только на вход, другая только на выход.
Теперь представьте, что у нас есть толпа рыцарей, и периодически они хотят на лужайке отдохнуть. Не обязательно все одновременно, хотя и такое не исключено. Но места для отдыха на лужайке достаточно только для одного рыцаря! Система работает так: рыцари, которые хотят отдохнуть, собираются у входной калитки, и как только лужайка освобождается, кидают жребий, кому отдыхать. Тот, кто вытягивает счастливый билетик, проходит на лужайку и начинает отдыхать. Остальные продолжают ждать у калитки (при этом некоторые могут забить на отдых и пойти по другим делам). Как только лужаечный рыцарь отдохнул, он покидает лужайку через выход, а ждущие рыцари кидают новый жребий. Так вот, калитка на вход/выход — критическая секция, рыцари — потоки, а лужайка — это ваш массив.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
08.09.2011, 19:44 | #4 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Критические секции могут использоваться, например, для того, что бы с одним массивом одновременно не работали две функции. Т.е. если, например, одна функция будет писать данный в массив, а вторая удалять определённые строки, то всё может пойти не по вашему плану. А если же в каждой функции добавить вход/выход из критической секции (одной и той же), то такого не произойдёт. Певрая функция "займёт" критическую секцию, начнёт работать... В это время вторая функция будет ждать освобождения этой критической секции и не станет работать с этим же массивом, пока первая функция не отработает.
|
08.09.2011, 20:51 | #5 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
coNsept
Не когда не приходилось с ними сталкиваться, поэтому появился вопрос что это такое и как ее хавать? Гоогле "Рихтер критические секции"
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
08.09.2011, 23:35 | #6 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Критическая секция - объект, который используется для синхронизации потоков в процессе. Только один поток может владеть критической секцией, поэтому если несколько несколько потоков запросят доступ к критической секции, будет выполнятся лишь тот, который успел завладеть критической секцией, остальные будут остановлены и ждать своей очереди на обладание критической секцией. Вот такая порнушка, в общем.
|
09.09.2011, 00:48 | #7 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Просто почитай хорошую книжку про многопоточность и примитивы синхронизации, так будет проще и понятнее )
|
09.09.2011, 00:54 | #8 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Хм, спасибо большое теперь все понятно.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
критические точки | alex_pm | Помощь студентам | 1 | 05.05.2011 00:52 |
Объекты ожидания в Delphi. Мьютекс, Семафор и Критические секции. | OlgaZN | Помощь студентам | 2 | 11.06.2010 12:01 |
Критические секции в Linux | Sparky | Помощь студентам | 2 | 28.05.2010 08:33 |
Критические секции | Altera | Общие вопросы Delphi | 2 | 25.12.2009 10:45 |
Секции | russian-stalker | Общие вопросы Delphi | 5 | 06.09.2008 20:25 |