
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.07.2013, 15:50
|
|||
|---|---|---|---|
|
|||
Т "блокировка доступа" к процедуре |
|||
|
#18+
Здравствуйте. Хотелось бы услышать мнения и советы как правильнее конструктивно поступить при такой ситуации: сразу скажу - почти нет опыта работы с потоками. существует несколько потоков и они могут работать относительно независимо, но все они используют общий список(массив) и переменную которые могут изменять необходимо сделать так чтобы потоки не имели одновременный доступ к списку и переменной, а каждый поток приступал к работе с этими данными уже в окончательном на момент виде. ждать завершения работы нет смысла. думал сделать так: определить переменную флаг, определяющую состояние блокировки процедуры видимую всем потоком, написать в теле процедуры работающей с общими данными по типу: procedure name() begin while isBlocked begin sleep(random(timeOutLim)) end .... работа с данными ... end насколько возможна такая ситуация что ожидающие потоки получат доступ к данным одновременно? Cпасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.07.2013, 16:19
|
|||
|---|---|---|---|
Т "блокировка доступа" к процедуре |
|||
|
#18+
Именованный мьютекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.07.2013, 16:24
|
|||
|---|---|---|---|
|
|||
Т "блокировка доступа" к процедуре |
|||
|
#18+
AkinaИменованный мьютекс?если потоки в одном приложении, то можно критическую секцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1341751]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
409ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 713ms |

| 0 / 0 |
