Понятие гонок

Если пренебрегать синхронизацией, то может возникнуть ситуация гонок, что может привести к ошибкам в работе программы и даже к краху системы.

Пример ситуации гонок: База данных, хранящая инфу о заказах и оплате клиента. С БД работает 2 потока: один пишет инфу о заказах, второй об оплате.

Итак:

1) Работает поток А: сделал А1 и А2, считал инфу в буфер, но в файл пока ничего не сохранил, в файле нет инфы о заказе.

2) Работает поток Б: сделал Б1 и Б2, в его буфере нет ничего про заказ клиента (инфа о нем хранится в буфере потока А)

3) Поток А выполнилА3 и записал в файл свою информацию

4) Поток Б выполнил Б3 записал в файл свою устаревшую информацию, затерев ту, что была записана – инфа о заказе потеряна.

Сложность проблемы заключается в нерегулярности ее возникновения.

Гонки – это ситуация, когда 2 или более потоков обрабатывают разделяемые данные и результат работы зависит от соотношения скоростей потоков (кто успел – обогнал, тот и съел);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: