OVH Cloud OVH Cloud

notify() est-ce du FIFO ?

6 réponses
Avatar
mokodaf1
Bonjour,

J'ai lu dans un document que le "reveillement" d'un thread a l'aide de
notify() ce fesait en FIFO (s'il y a plusieurs thread bien sur...)
Or dans la bible j2se_api, pour notify() il dise "...The choice is
arbitrary and occurs at the discretion of the implementation..."
Quelqu'un serait me dire avec certitude laquel de ces 2 affirmation est
vrai ?

Merci

Bonne soir=E9e

6 réponses

Avatar
Vincent Cantin
Tu l'as vu dans quel document ton truc en FIFO ?
Je crois en la seconde affirmation, mais c'est de la religion.
Avatar
mokodaf1
J'ai lu ça dans un cours d'ingé info...
Il faudrait que je fasse un test grandeur nature...

Merci
Avatar
mokodaf1
il y a déja ce document entre autre qui précise bien qu'il y a
notion de fifo...
http://www.infres.enst.fr/~charon/coursJava/threads/wait.html
Avatar
fabrice-pas-despame.bacchella
On 13 Nov 2005 02:43:04 -0800, wrote:

J'ai lu ça dans un cours d'ingé info...
Il faudrait que je fasse un test grandeur nature...



Ben non justement. Si le réveil d'un thread depend de
l'implémentation, ça veut pas dire que c'est impossible mais que c'est
pas garantie. Donc que la version 1.x.y va fonctionner comme ça par
exemple, mais pas la version 1.x.y+1, ou que c'est le cas sur une
machine mono proc, mais pas une bi proc, etc...

En gros, si vous faites le test & que c'est pas le cas, c'est bon
c'est concluant. Mais si c'est le cas, ça ne veut rien dire.

De toute façon, extrait de l'API de Sun, :

http://java.sun.com/j2se/1.4.2/docs/api/ :
The choice is arbitrary and occurs at the discretion of the
implementation.

S'ils ont pris la peine de l'écrire, c'est bien parce qu'il ne veulent
pas s'emmerder à le garantir.

Avatar
TestMan
Bonjour,

wrote:
Bonjour,

J'ai lu dans un document que le "reveillement" d'un thread a l'aide de
notify() ce fesait en FIFO (s'il y a plusieurs thread bien sur...)
Or dans la bible j2se_api, pour notify() il dise "...The choice is
arbitrary and occurs at the discretion of the implementation..."
Quelqu'un serait me dire avec certitude laquel de ces 2 affirmation est
vrai ?

Merci
Bonne soirée


Si tu veux du blocage FIFO tu as
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html

Les java.util.concurrent contienent tout ce qu'il faut pour s'amuser
avec la programmation concurente. Et sans dépendre des spécifités liés à
ta plateforme et à l'implémentation de ta VM choisie ...

A+
TM

Avatar
cilovie
Si tu n'est pas en 1.5 voir
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html

TestMan wrote:
Bonjour,

wrote:

Bonjour,

J'ai lu dans un document que le "reveillement" d'un thread a l'aide de
notify() ce fesait en FIFO (s'il y a plusieurs thread bien sur...)
Or dans la bible j2se_api, pour notify() il dise "...The choice is
arbitrary and occurs at the discretion of the implementation..."
Quelqu'un serait me dire avec certitude laquel de ces 2 affirmation est
vrai ?

Merci
Bonne soirée



Si tu veux du blocage FIFO tu as
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html


Les java.util.concurrent contienent tout ce qu'il faut pour s'amuser
avec la programmation concurente. Et sans dépendre des spécifités liés à
ta plateforme et à l'implémentation de ta VM choisie ...

A+
TM