Портал аспирантов

Портал аспирантов (http://www.aspirantura.spb.ru/forum/index.php)
-   Свободное общение (http://www.aspirantura.spb.ru/forum/forumdisplay.php?f=102)
-   -   Что вижу, о том пою (с). Часть 5 (http://www.aspirantura.spb.ru/forum/showthread.php?t=12558)

Dr SG 02.08.2014 22:11

[b]Paul Kellerman[/b
жарко, я в саду наломалась. Сыночка щас последние бревна допиливает.
Spritzer в самый раз. Для меня 1\5 белого с содовой и льдом.

Цитата:

Сообщение от Paul Kellerman (Сообщение 464151)
Пегги о'Дауд

а до нее у меня титьки не доросли :lol:

Галчонка 02.08.2014 23:21

А я сейчас выпила пол бутылки коньяка...я давно себя так хорошо не чувствовала....еще бы водочкой шлифануть)))) Сейчас устрою пьяные бродилки по форуму...

Dr SG 02.08.2014 23:30

Галчонка, тож хорошо.
выходные все-таки :D

4gost 02.08.2014 23:31

Цитата:

Сообщение от Старший докторенок (Сообщение 464138)
Не, мороженку не ем уже года четыре.

А чего так?

Maksimus 02.08.2014 23:38

Цитата:

Сообщение от 4gost (Сообщение 464173)
А чего так?

А какая в нем польза?

4gost 02.08.2014 23:42

Цитата:

Сообщение от Maksimus (Сообщение 464175)
А какая в нем польза?

Скрытый текст
Postman: Надо кошку завести, она будет всех радовать!
Механик: Это бесполезное животное будет от меня получать пендаля
Postman: Ну это будет же тебя радовать?
Механик: Да....
Postman: Значит ее жизнь не будет бессмысленной.
(с)башорг

Домохозяйка 03.08.2014 10:50

Цитата:

Сообщение от Maksimus (Сообщение 464175)
А какая в нем польза?

оно из молока

Maksimus 03.08.2014 12:06

Цитата:

Сообщение от Домохозяйка (Сообщение 464221)
оно из молока

и немеряно сахара.

Дмитрий В. 03.08.2014 13:39

Цитата:

Сообщение от _Tatyana_ (Сообщение 464130)
вы столица, мы родина

С небольшим запозданием - поздравляю уважаемого Havrosh как непосредственно причастного ко дню ВДВ, желаю мирного неба над головой и всегда штатного приземления! :)
http://s004.radikal.ru/i206/1308/43/a1b6ed31ee96.gif

Paul Kellerman 03.08.2014 13:39

kravets, проблема рандомизации доступа к ресурсу с использованием мьютекса решилась.

В классике каждый поток перед доступом к ресурсу пытается захватить мьютекс и если не
получается уходит в спячку, пока мьютекс не освободится и система отдаст мьютекс потоку.
Код:

if WaitForSingleObject(ResMutex,INFINITE) = WAIT_OBJECT_0 then
  begin
    .
    < работа с ресурсом >
    .
    ReleaseMutex(ResMutex);
  end;

Поток в случае занятости мьютекса непрерывно пассивно ждет, пока система не выберет его.
Система отслеживает время непрерывного ожидания и при освобождении мьютекса выбирает
тот поток, который дольше всех ждал (при равных приоритетах). А нам нужен случайный выбор.

Ну так давайте спутаем все карты системе и будем ждать не непрерывно, а случайно-дискретно.

Код:

flag:= False;
while not(flag) do
  begin
    dt:= 10 + 20 * Random;
    if WaitForSingleObject(ResMutex, dt) = WAIT_OBJECT_0 then flag:= True;
  end;
if (flag) then
  begin
    .
    < работа с ресурсом >
    .
    ReleaseMutex(ResMutex);
  end;

Из-за прерывистого ожидания со случайными интервалами системе приходится выбирать наугад.

Минус метода - низкое быстродействие, но мне и не нужно быстро. Потоки в среднем раз в секунду
обращаются к ресурсу. По сути получилась спин-блокировка с ожиданиями в течение случайных dt.

Протестировал в имитационной модели. Статистические показатели отлично сходятся с расчетными.


Текущее время: 08:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
© 2001—2025, «Аспирантура. Портал аспирантов»