|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
появилась необходимость поставить блокировку на глобаль: простой пример, характеризующий необходимую функциональность, 2 программы: 1 программа Код: plaintext 1. 2. 3. 4. 5. 6.
2 программа (^someprog) Код: plaintext 1. 2.
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 11:32 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
AndrewQwer , запись данных никак не зависит от состояния блокировки... Твою задачку можно реализовать например так. Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 11:53 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
первую часть понял, ставим блокировку с +, а вторую можно немного объяснить? чет не понимаю принцип ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 12:15 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
во второй части, в цикле устанавливается блокировка с ожиданием 0, т.е. если блокировка сразу не удалась, то выходим, если блокировка не установилась, то $test будет 0, соответственно цикл не завершится пока не установится блокировка _________________________________ Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 12:28 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Спасибо за помощь, буду внедрять :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 12:39 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Ставить блокировку без таймаута опасненько - IMXO. А так - после выполнения lock - нужно обязательно анализировать $test ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 14:00 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Я бы посоветовал обратить внимание на механизм передачи сообщений через почтовый ящик, или использование семафоров. Есть и еще ряд методов синхронизации. Механизм блокировки самый простой, но не всегда самый удобный. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 08:33 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
AlexKB , примеры бы показал... А то заинтриговал и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 08:49 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
да, хотя бы пару примерчиков по организации блокировок различными средствами.. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2009, 10:08 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
AndrewQwer , собственно про блокировку мы тебе написали... А тут, как я понял, другие способы реализации контроля "занятости" нужного тебе "элемента"... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2009, 10:45 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
krvsa , вот хотелось бы тоже узнать про контроль занятости чего нить нового. Способ описаный выше вроде как хорошо работает, не жалуюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2009, 11:13 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
AndrewQwer, Я упомянул не о контроле занятости ресурса, в данном случае с использованием команды Lock, а о способе синхронизации процессов через почтовый ящик. The %SYSTEM.Event class provides an interface to the Cache Event API. %SYSTEM.Event class достаточно хорошо описан в документации по классам Cache, вот если бы все классы так описывались. Пример Вам может ничем и не поможет, если Вы не знакомы с подобным способом общения между процессами, к тому же, все очень тесно будет привязано к решаемым Вами задачам. Если Вам действительно нужен пример, то я Вам его предоставлю, возьму со своих проектов, уберу все лишнее что может Вас запутать и выложу. Просто сейчас очень занят, если потерпите какое-то время, то я выложу. Если же Вам знаком подобный механизм, то из описания класса Вы все поймете. Просто я указал что такой механизм в Cache существует, не все могли об этом знать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2009, 13:41 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
AlexKB , когда у вас будет достаточно времени было бы неплохо глянуть примерчик, для самообразования любая информация полезна. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2009, 13:44 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
AlexKB меня тоже интересует такой метод контроля ресурсами. Можно ли увидеть пример? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2010, 20:42 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
krvsa Код: plaintext 1. 2.
Я правильно понимаю, что предлагается долбиться Lock'ом в цикле, пока не пройдет? С ожиданием 0. Вы это серьезно? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2010, 01:37 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Sergei Obrastsov , а это уже как ты сам пожелаешь... P.S. Поговаривают один программер помер в душе от истощения, прочитав инструкцию на шампуне: 1. Нанести 2. Намылить 3. Смыть 4. Повторить ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2010, 11:45 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Sergei Obrastsovkrvsa Код: plaintext 1. 2.
Я правильно понимаю, что предлагается долбиться Lock'ом в цикле, пока не пройдет? С ожиданием 0. Вы это серьезно?] смысл в использовании ожидания, что вы можете по желанию прервать работу и попробовать позже, когда это будет возможно можно конечно не использовать ожидания, тогда программа зависнет ожидая освобождения блокировки, а вот это уже может быть не желательным ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2010, 12:14 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Насколько понимаю, возражение вызвало время ожидания = 0. Стоит ли грузить [одно из ядер] CPU на 100%? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2010, 12:19 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
так в чем проблема, добавив в этом цикле задержку hang 0.1, ну или там своим потребностям, можно уже не так волноваться о процессоре ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2010, 12:29 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Alexey MaslovСтоит ли грузить [одно из ядер] CPU на 100%? Уж чего точно не стоит делать, так это сурово обсуждать пример-иллюстрацию работы блокировки. Поскольку там неболее чем через 10 секунд первый процесс снимет блокировку и "позволит" второму выполнить несложные действия с глобалом. Если кому-то сей тестовый пример кажется дюже энерго затратным - дайте свой вариант, на нём и остановимся. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2010, 13:10 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
DAiMorсмысл в использовании ожидания, что вы можете по желанию прервать работу и попробовать позже, когда это будет возможно можно конечно не использовать ожидания, тогда программа зависнет ожидая освобождения блокировки, а вот это уже может быть не желательным Я вообще-то догадался для чего используется ожидание. Советую прикинуть, сколько раз выполнится за 10 секунд этот блок. И подумать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 01:37 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
krvsaУж чего точно не стоит делать, так это сурово обсуждать пример-иллюстрацию работы блокировки. Поскольку там неболее чем через 10 секунд первый процесс снимет блокировку и "позволит" второму выполнить несложные действия с глобалом. Это всего лишь иллюстрация подхода к программированию. Очень даже симптоматично и в духе времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 01:42 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
Sergei Obrastsov , твой пример так и не увидим? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 08:38 |
|
как использовать Lock правильно
|
|||
---|---|---|---|
#18+
krvsa Sergei Obrastsov , твой пример так и не увидим? Простите, он разве не очевиден? Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 09:34 |
|
|
start [/forum/topic.php?fid=39&msg=36767491&tid=1557234]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 249ms |
total: | 504ms |
0 / 0 |