/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Beskedsemafor i Java?
Fra : JS


Dato : 05-03-05 20:48

Såvidt jeg har forstået svarer en beskedsemafor til at sætte en gruppe af
beskeder (som en eventuel konsument skal behandle) i en kø. Konsumenten
udtager så et element af gangen fra denne kø.

Men hvor kan man finde noget mere baggrundsstof angående beskedsemanforer.
Har forsøgt på google, men har kun fundet eksempler på tællesemanforer.

Håber nogen kan hjælpe!

Mvh
Johs



 
 
Jesper Louis Anderse~ (05-03-2005)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 05-03-05 21:13

JS <sfsdfs@asdas.com> wrote:
> S?vidt jeg har forst?et svarer en beskedsemafor til at s?tte en gruppe af
> beskeder (som en eventuel konsument skal behandle) i en k?. Konsumenten
> udtager s? et element af gangen fra denne k?.

.... og blokerer, hvis der ikke er nogen beskeder at udtage.

> Men hvor kan man finde noget mere baggrundsstof ang?ende beskedsemanforer.
> Har fors?gt p? google, men har kun fundet eksempler p? t?llesemanforer.

Du soeger nok paa det forkerte. en ``message queue'' har nogenlunde? den samme
semantik som beskedsemaforer, men jeg kan aerligt talt ikke huske om de rent
faktisk blokerer, hvis der ikke er nogen messages, eller om de bare kan polles
i ordets vaerste forstand.

Det er ioevrigt kedeligt at programmere med semaforer. Enten skal man kigge
lidt paa Monitor-princippet, med conditionvariables og venner. Eller ogsaa
skal man kigge lidt paa transactional memory. Det sidste er rigtigt
interessant IMO.

--
jlouis

Filip Larsen (06-03-2005)
Kommentar
Fra : Filip Larsen


Dato : 06-03-05 10:19

JS skre

> Såvidt jeg har forstået svarer en beskedsemafor til at sætte en gruppe
af
> beskeder (som en eventuel konsument skal behandle) i en kø.
Konsumenten
> udtager så et element af gangen fra denne kø.
>
> Men hvor kan man finde noget mere baggrundsstof angående
beskedsemanforer.
> Har forsøgt på google, men har kun fundet eksempler på
tællesemanforer.

En semafor er vel nærmest per definition altid en tællesemafor forstået
på den måde, at man i princippet altid tæller et eller andet, fx. antal
resourcer, antal beskeder i en kø, antal tråde i en kritisk blok, osv.

En læsesemafor til en kø kan typisk laves ved at semaforen tælles op når
man indsætter en besked i køen og forsøges tælles ned når man vil udtage
en besked og dermed vil semaforen automatisk komme til at tælle antal
beskeder i køen. Jeg skal ikke afvise, at man kan tælle anderledes med
en sådan læsesemafor til en kø, men umiddelbart kan jeg ikke se nogen
fornuftig alternativ måde at gøre det på. Bemærk, at man med brug af kun
semaforer normalt også bliver nødt til at have en (binær) semafor til at
styre adgangen til at aflæse eller ændre den underliggende datastruktur.

Sådan som du stiller dit spørgsmål virker det som om, at en
beskedsemafor skulle være en slags kombineret semafor og kø, men mig
bekendt er der ikke nogen speciel (akademisk) standard for en sådan
ting. Det nærmeste teoretiske begreb jeg umiddelbart kan komme i tanke
om er farvede Petrinet (colored Petri nets).

Der går i øvrigt op for mig nu, at der med "beskedsemafor" måske blot
menes en binær semfor, dvs. semafor der kun tæller til en? Kan du evt.
uddybe i hvilken forbindelse du har hørt om beskedsemaforer?


Mvh,
--
Filip Larsen



Jesper Louis Anderse~ (06-03-2005)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 06-03-05 13:57

Filip Larsen <filip.larsen@nospam.dk> wrote:

> En semafor er vel n?rmest per definition altid en t?llesemafor forst?et
> p? den m?de, at man i princippet altid t?ller et eller andet, fx. antal
> resourcer, antal beskeder i en k?, antal tr?de i en kritisk blok, osv.

Tjah, alle semaforer er aekvivalente forstaaet paa den maade at med en
type semafor, kan man implementere de andre.

> semaforer normalt ogs? bliver n?dt til at have en (bin?r) semafor til at
> styre adgangen til at afl?se eller ?ndre den underliggende datastruktur.

Det er jo taellesemaforer med 1 resource ;)

> Der g?r i ?vrigt op for mig nu, at der med "beskedsemafor" m?ske blot
> menes en bin?r semfor, dvs. semafor der kun t?ller til en? Kan du evt.
> uddybe i hvilken forbindelse du har h?rt om beskedsemaforer?

Jeg har set systemer, hvor der maksimalt kan vaere 1 besked af gangen.
Jeg har ogsaa set systemer, hvor der er en backing i form af en koe. Jeg
synes bestemt ikke at begrebet beskedsemafor er veldefineret.

--
jlouis

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste