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

start [/forum/topic.php?fid=16&fpage=55&tid=1341751]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 302ms |

| 0 / 0 |
