![]() |
[b]Paul Kellerman[/b
жарко, я в саду наломалась. Сыночка щас последние бревна допиливает. Spritzer в самый раз. Для меня 1\5 белого с содовой и льдом. Цитата:
|
А я сейчас выпила пол бутылки коньяка...я давно себя так хорошо не чувствовала....еще бы водочкой шлифануть)))) Сейчас устрою пьяные бродилки по форуму...
|
Галчонка, тож хорошо.
выходные все-таки :D |
Цитата:
|
Цитата:
|
Цитата:
Скрытый текст
Postman: Надо кошку завести, она будет всех радовать!
Механик: Это бесполезное животное будет от меня получать пендаля Postman: Ну это будет же тебя радовать? Механик: Да.... Postman: Значит ее жизнь не будет бессмысленной. (с)башорг |
Цитата:
|
Цитата:
|
Цитата:
http://s004.radikal.ru/i206/1308/43/a1b6ed31ee96.gif |
kravets, проблема рандомизации доступа к ресурсу с использованием мьютекса решилась.
В классике каждый поток перед доступом к ресурсу пытается захватить мьютекс и если не получается уходит в спячку, пока мьютекс не освободится и система отдаст мьютекс потоку. Код:
if WaitForSingleObject(ResMutex,INFINITE) = WAIT_OBJECT_0 then Система отслеживает время непрерывного ожидания и при освобождении мьютекса выбирает тот поток, который дольше всех ждал (при равных приоритетах). А нам нужен случайный выбор. Ну так давайте спутаем все карты системе и будем ждать не непрерывно, а случайно-дискретно. Код:
flag:= False; Минус метода - низкое быстродействие, но мне и не нужно быстро. Потоки в среднем раз в секунду обращаются к ресурсу. По сути получилась спин-блокировка с ожиданиями в течение случайных dt. Протестировал в имитационной модели. Статистические показатели отлично сходятся с расчетными. |
Текущее время: 08:45. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
© 2001—2025, «Аспирантура. Портал аспирантов»