-
X-Received: by 10.140.43.54 with SMTP id d51mr407969qga.19.1449315892840; Sat, 05 Dec
2015 03:44:52 -0800 (PST)
X-Received: by 10.140.43.54 with SMTP id d51mr407969qga.19.1449315892840; Sat, 05 Dec
2015 03:44:52 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!1.eu.feeder.erj
e.net!feeder.erje.net!2.us.feeder.erje.net!news.glorb.com!mv3no9485841igc.0!new
s-out.google.com!f23ni2132qge.0!nntp.google.com!b51no6566581qgf.0!postnews.goog
le.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 5 Dec 2015 03:44:52 -0800 (PST)
In-Reply-To: <n3t8i9$tnq$1@node1.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.34.88;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.34.88
References: <n3s6h0$itv$1@node2.news.atman.pl> <n3t8i9$tnq$1@node1.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e...@g...com>
Subject: Re: Struktura do przydzielania numerków
From: "M.M." <m...@g...com>
Injection-Date: Sat, 05 Dec 2015 11:44:52 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:208966
[ ukryj nagłówki ]On Saturday, December 5, 2015 at 12:45:15 AM UTC+1, bartekltg wrote:
> On 04.12.2015 15:04, Borneq wrote:
> > Każdy zasób określony jest przez numer z zakresu <a,b), bez miany
> > ogólności możemy przyjąć że zakres jest <0,n) gdzie n=b-a.
> > N jest duże, np. dwa miliony, więc nie ma obaw że zabraknie zasobów, n
> > to ilość ile może być zasobów JEDNOCZEŚNIE. Ale gdy zwolnimy jakiś
> > zasób, jego numer może zostać przydzielony znowu.
> > Choć duże n, to może się skończyć, gdy będziemy przydzielać, zwalniać i
> > zwiększać k.
> > Są dwie strategie: albo przydzielać zawsze najniższy wolny numer, albo
> > cały czas inkrementować k, przydzielać najwyższy numer, aż gdy k
> > osiągnie n, wtedy zawinie się od początku. Jak jest lepiej?
> > Jaka struktura? Czy trzymać listę raczej wolnych czy raczej zajętych
> > numerów? Gdy będzie mało wykorzystane, oszczędniej trzymać raczej listę
> > zajętych, ale listę wolnych może lepiej szukać?
>
>
> Rozumoem, że nie chodzi o obiekt w pamięci. Bo jeśli tak,
> to można to zrobić jeszcze sprytniej.
No właśnie, dokładnie nie wiadomo do czego to jest potrzebne i trudno
coś doradzić. Ja zrozumiałem, nie wiedzieć czemu, że trzeba podać
najmniejszy wolny i bym zasugerował stertę. Może zrozumiałem tak
dlatego, że nie zdecydował się na ciągłe inkrementowanie long long.
Potem Broneq pisał coś o bezpośrednim programowaniu Xa, więc
najlepsze co można zrobić, to zajrzeć do przykładów - tam zapewne
znajdują się rozwiązania dedykowane i obsługujące różne przypadki
które ciężko z góry przewidzieć, i które mogą się pojawić. Struktura
musi być dostosowana do wszystkich przypadków a nie tylko do
podawania unikalnego id.
> Pomysł wstępny:
> Stos wolnych. Gdy wątek pobiera zasób, zabier go jednocześnie
> ze stosu. Gdy zwalnie, wsadza numer na samą górę.
>
> Wszystko w czasie stałym.
Jeśli jest potrzebny dowolny dostępny, to stos lub kolejka wydają się
najlepsze. Jeśli jakiś dowolny numer, to najlepiej:
get( id_thread ) {
static long long res[max] = {0,1,2,3,4...max-1};
return res[id_thread] += max;
}
> Modyfikacja: kolejka fifo w cyklicznym buforze (wielkosći N+1).
> Pobierasz z jednej strony, oddajesz po drugiej.
>
> Ale nie zawsze warto, jeśli ostatnio używane zasób jest
> z jakiś posobów lepszy (co siedzi w buforach) to pierwsza
> wersja lepsza.
>
>
> No, chyba, że zasobem są stałej wielkośći fragmenty pamięći
> (obiekty po kilka(set) bajtów). Wtedy robie się to inaczej.
Zależy, często w takich przypadkach stos i kolejka też się nadają.
Pozdrawiam
Następne wpisy z tego wątku
- 06.12.15 10:12 Borneq
- 06.12.15 10:21 Borneq
- 06.12.15 11:29 Borneq
- 06.12.15 17:26 bartekltg
- 06.12.15 19:47 Borneq
- 07.12.15 01:05 Borneq
- 07.12.15 03:09 bartekltg
- 07.12.15 03:13 bartekltg
- 07.12.15 10:31 Borneq
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-09-16 zapora Stronie Slaskie
- 2024-09-16 powodz
- 2024-09-16 Aple ma przycisk APARATU. SERIO? Tyle lat im to zajęło?
- 2024-09-15 Mulitisim
- 2024-09-15 Jaki telefon dla "SENIORA"? ;-)
- 2024-09-18 Co z 7 miejsc w leasingu dla fizycznych?
- 2024-09-17 Kultura zapie....ania
- 2024-09-17 Gdańsk się skończył dla mnie.
- 2024-09-16 Elektryki z południa lecą do ciepłych krajów :)
- 2024-09-16 Re: Wolkswagen szantażuje rząd aby powróciły dotacje do elektryków
- 2024-09-17 Wybuchające pagery
- 2024-09-18 szukam speca od mini-remontow (w w-wie)
- 2024-09-18 Warszawa => Spedytor międzynarodowy <=
- 2024-09-18 Kraków => Java Full Stack Developer (Angular/React) <=
- 2024-09-18 Warszawa => Projektant/Programista React Native <=