- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour les
performances.
Les threads pour faire plus en même temps me semblent déjà bien p lus
structurant au niveau du programme, font souvent tourner une boucle dan s
leur fonction principale, avec ou sans timer,...
Je ne suis pas sûr que je comprends.
Je voulais dire par là que souvent, ce genre de thread a une
durée de vie (et des responsabilités) plus grande que cette
d'un thread pour les performances. Et ces threads n'ont pas un
début et une fin intrinsèques, mais tournent en boucle jusqu'à
ce qu'on leur demande d'arrêter.
Et dans certains domaines, liés au temps réel entre autre,
certains de ces threads ont une durée de vie égale à celle du
programme, et des contraites en qualité de cadencement qui
leur sont propres.
Il est pour moi assez différent de dire que le calcul sera
dans un thread à part pour que l'affichage continue à se
raffraichir (et les contraintes de qualité s'exprimeront le
plus souvent en temps maximum avant le réveil du thread), et
que dire que la mise en forme et l'envoi d'information à tel
actionneur s'effectuera dans un thread à part, cadencé à 30ms
+/- 1ms.
Cette notion de thread cadencée, aujourd'hui, je l'effectue en
ayant simplement un thread qui boucle avec une attente sur un
timer, mais je me demande si c'est vraiment le bon modèle.
Dans les deux cas, le réveil du thread s'effectue par un
évènement (mouvement souris ou timer), mais il y a
suffisemment de différences entre les deux cas pour que je
veuille les séparer (par exemple la gestion de ce qui se passe
quand l'évènement est réémis alors que le traitement précédent
n'a pas eu le temps de se terminer).
Finalement, j'en arrive à la classification suivante :
- Thread pour la performance
- Thread pour la réactivité
- Cadencé
- Réveillé par des évènements autres
- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour les
performances.
Les threads pour faire plus en même temps me semblent déjà bien p lus
structurant au niveau du programme, font souvent tourner une boucle dan s
leur fonction principale, avec ou sans timer,...
Je ne suis pas sûr que je comprends.
Je voulais dire par là que souvent, ce genre de thread a une
durée de vie (et des responsabilités) plus grande que cette
d'un thread pour les performances. Et ces threads n'ont pas un
début et une fin intrinsèques, mais tournent en boucle jusqu'à
ce qu'on leur demande d'arrêter.
Et dans certains domaines, liés au temps réel entre autre,
certains de ces threads ont une durée de vie égale à celle du
programme, et des contraites en qualité de cadencement qui
leur sont propres.
Il est pour moi assez différent de dire que le calcul sera
dans un thread à part pour que l'affichage continue à se
raffraichir (et les contraintes de qualité s'exprimeront le
plus souvent en temps maximum avant le réveil du thread), et
que dire que la mise en forme et l'envoi d'information à tel
actionneur s'effectuera dans un thread à part, cadencé à 30ms
+/- 1ms.
Cette notion de thread cadencée, aujourd'hui, je l'effectue en
ayant simplement un thread qui boucle avec une attente sur un
timer, mais je me demande si c'est vraiment le bon modèle.
Dans les deux cas, le réveil du thread s'effectue par un
évènement (mouvement souris ou timer), mais il y a
suffisemment de différences entre les deux cas pour que je
veuille les séparer (par exemple la gestion de ce qui se passe
quand l'évènement est réémis alors que le traitement précédent
n'a pas eu le temps de se terminer).
Finalement, j'en arrive à la classification suivante :
- Thread pour la performance
- Thread pour la réactivité
- Cadencé
- Réveillé par des évènements autres
- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour les
performances.
Les threads pour faire plus en même temps me semblent déjà bien p lus
structurant au niveau du programme, font souvent tourner une boucle dan s
leur fonction principale, avec ou sans timer,...
Je ne suis pas sûr que je comprends.
Je voulais dire par là que souvent, ce genre de thread a une
durée de vie (et des responsabilités) plus grande que cette
d'un thread pour les performances. Et ces threads n'ont pas un
début et une fin intrinsèques, mais tournent en boucle jusqu'à
ce qu'on leur demande d'arrêter.
Et dans certains domaines, liés au temps réel entre autre,
certains de ces threads ont une durée de vie égale à celle du
programme, et des contraites en qualité de cadencement qui
leur sont propres.
Il est pour moi assez différent de dire que le calcul sera
dans un thread à part pour que l'affichage continue à se
raffraichir (et les contraintes de qualité s'exprimeront le
plus souvent en temps maximum avant le réveil du thread), et
que dire que la mise en forme et l'envoi d'information à tel
actionneur s'effectuera dans un thread à part, cadencé à 30ms
+/- 1ms.
Cette notion de thread cadencée, aujourd'hui, je l'effectue en
ayant simplement un thread qui boucle avec une attente sur un
timer, mais je me demande si c'est vraiment le bon modèle.
Dans les deux cas, le réveil du thread s'effectue par un
évènement (mouvement souris ou timer), mais il y a
suffisemment de différences entre les deux cas pour que je
veuille les séparer (par exemple la gestion de ce qui se passe
quand l'évènement est réémis alors que le traitement précédent
n'a pas eu le temps de se terminer).
Finalement, j'en arrive à la classification suivante :
- Thread pour la performance
- Thread pour la réactivité
- Cadencé
- Réveillé par des évènements autres
On Jan 21, 11:16 am, Luc Hermitte wrote:On 18 jan, 09:29, James Kanze wrote:[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou u n
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Entre
temps, il est fortement conseillé d'utiliser le délégué.)
Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.)
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
Dans quel sens ?
[...]
-- En revanche, il n'est pas conçu pour une emission
« broadcast ». Chose dont je n'avais pas besoin, mais qui
pourrait sans doute être utile dans d'autres applications.
(A priori, dans de tels cas, je préfèrerais un passage par
copie, de façon à ce que chaque thread ait sa propre copie
privée du message.)
On Jan 21, 11:16 am, Luc Hermitte <luc.hermi...@gmail.com> wrote:
On 18 jan, 09:29, James Kanze <james.ka...@gmail.com> wrote:
[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou u n
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Entre
temps, il est fortement conseillé d'utiliser le délégué.)
Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.)
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
Dans quel sens ?
[...]
-- En revanche, il n'est pas conçu pour une emission
« broadcast ». Chose dont je n'avais pas besoin, mais qui
pourrait sans doute être utile dans d'autres applications.
(A priori, dans de tels cas, je préfèrerais un passage par
copie, de façon à ce que chaque thread ait sa propre copie
privée du message.)
On Jan 21, 11:16 am, Luc Hermitte wrote:On 18 jan, 09:29, James Kanze wrote:[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou u n
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Entre
temps, il est fortement conseillé d'utiliser le délégué.)
Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.)
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
Dans quel sens ?
[...]
-- En revanche, il n'est pas conçu pour une emission
« broadcast ». Chose dont je n'avais pas besoin, mais qui
pourrait sans doute être utile dans d'autres applications.
(A priori, dans de tels cas, je préfèrerais un passage par
copie, de façon à ce que chaque thread ait sa propre copie
privée du message.)
On Jan 21, 11:24 pm, Loïc Joly
wrote:- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour le s
performances.
Voilà le mot que je cherchais : réactivitité.
On Jan 21, 11:24 pm, Loïc Joly <loic.actarus.j...@numericable.fr>
wrote:
- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour le s
performances.
Voilà le mot que je cherchais : réactivitité.
On Jan 21, 11:24 pm, Loïc Joly
wrote:- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour le s
performances.
Voilà le mot que je cherchais : réactivitité.
On 21 jan, 15:00, James Kanze wrote:On Jan 21, 11:16 am, Luc Hermitte wrote:On 18 jan, 09:29, James Kanze wrote:[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
J'ai pas mal utilisé ACE ces derniers temps. J'apprécie la richesse
des patterns, mais parfois l'utilisabilité, pour reprendre tes mots,
laisse effectivement à désirer. :(
Seulement, je ne connais pas d'autre bibliothèque qui fournisse autant
de choses -- en plus des contraintes projet qui fait que ACE restera
où il est pendant des années encore.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
ACE ne propose pas que ce modèle (on a aussi des threads fonction, les
futures, ...). Mais j'avoue que c'est celui d'ACE que j'utilise
majoritairement, voire exclusivement. En grande partie parce que les
ACE_Task intègrent des messages blocks -- cf plus bas.C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Entre
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problèmes
introduits. Merci.
Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.)
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
Dans quel sens ?
[...]
-- En revanche, il n'est pas conçu pour une emission
« broadcast ». Chose dont je n'avais pas besoin, mais qui
pourrait sans doute être utile dans d'autres applications.
(A priori, dans de tels cas, je préfèrerais un passage par
copie, de façon à ce que chaque thread ait sa propre copie
privée du message.)
Celui-ci. Je l'utilise dans une application de type routeur qui
redonde une télémétrie entrante vers plusieurs canaux en sortie. Les
trames pouvant varier entre une vingtaine d'octets et quelques
dizaines de kilo-octets, la solution retenue est celle d'ACE qui offre
un comptage de référence (avec compteur atomique si mes souvenirs sont
bons)
On 21 jan, 15:00, James Kanze <james.ka...@gmail.com> wrote:
On Jan 21, 11:16 am, Luc Hermitte <luc.hermi...@gmail.com> wrote:
On 18 jan, 09:29, James Kanze <james.ka...@gmail.com> wrote:
[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
J'ai pas mal utilisé ACE ces derniers temps. J'apprécie la richesse
des patterns, mais parfois l'utilisabilité, pour reprendre tes mots,
laisse effectivement à désirer. :(
Seulement, je ne connais pas d'autre bibliothèque qui fournisse autant
de choses -- en plus des contraintes projet qui fait que ACE restera
où il est pendant des années encore.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
ACE ne propose pas que ce modèle (on a aussi des threads fonction, les
futures, ...). Mais j'avoue que c'est celui d'ACE que j'utilise
majoritairement, voire exclusivement. En grande partie parce que les
ACE_Task intègrent des messages blocks -- cf plus bas.
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Entre
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problèmes
introduits. Merci.
Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.)
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
Dans quel sens ?
[...]
-- En revanche, il n'est pas conçu pour une emission
« broadcast ». Chose dont je n'avais pas besoin, mais qui
pourrait sans doute être utile dans d'autres applications.
(A priori, dans de tels cas, je préfèrerais un passage par
copie, de façon à ce que chaque thread ait sa propre copie
privée du message.)
Celui-ci. Je l'utilise dans une application de type routeur qui
redonde une télémétrie entrante vers plusieurs canaux en sortie. Les
trames pouvant varier entre une vingtaine d'octets et quelques
dizaines de kilo-octets, la solution retenue est celle d'ACE qui offre
un comptage de référence (avec compteur atomique si mes souvenirs sont
bons)
On 21 jan, 15:00, James Kanze wrote:On Jan 21, 11:16 am, Luc Hermitte wrote:On 18 jan, 09:29, James Kanze wrote:[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
J'ai pas mal utilisé ACE ces derniers temps. J'apprécie la richesse
des patterns, mais parfois l'utilisabilité, pour reprendre tes mots,
laisse effectivement à désirer. :(
Seulement, je ne connais pas d'autre bibliothèque qui fournisse autant
de choses -- en plus des contraintes projet qui fait que ACE restera
où il est pendant des années encore.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
ACE ne propose pas que ce modèle (on a aussi des threads fonction, les
futures, ...). Mais j'avoue que c'est celui d'ACE que j'utilise
majoritairement, voire exclusivement. En grande partie parce que les
ACE_Task intègrent des messages blocks -- cf plus bas.C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Entre
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problèmes
introduits. Merci.
Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.)
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
Dans quel sens ?
[...]
-- En revanche, il n'est pas conçu pour une emission
« broadcast ». Chose dont je n'avais pas besoin, mais qui
pourrait sans doute être utile dans d'autres applications.
(A priori, dans de tels cas, je préfèrerais un passage par
copie, de façon à ce que chaque thread ait sa propre copie
privée du message.)
Celui-ci. Je l'utilise dans une application de type routeur qui
redonde une télémétrie entrante vers plusieurs canaux en sortie. Les
trames pouvant varier entre une vingtaine d'octets et quelques
dizaines de kilo-octets, la solution retenue est celle d'ACE qui offre
un comptage de référence (avec compteur atomique si mes souvenirs sont
bons)
On 22 jan, 11:09, James Kanze wrote:On Jan 21, 11:24 pm, Loïc Joly
wrote:- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour les
performances.
Voilà le mot que je cherchais : réactivitité.
Les termes generalement utilises dans la litterature sont
'concurrence' (reactivite) et 'parallelisme' (performance).
On 22 jan, 11:09, James Kanze <james.ka...@gmail.com> wrote:
On Jan 21, 11:24 pm, Loïc Joly <loic.actarus.j...@numericable.fr>
wrote:
- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour les
performances.
Voilà le mot que je cherchais : réactivitité.
Les termes generalement utilises dans la litterature sont
'concurrence' (reactivite) et 'parallelisme' (performance).
On 22 jan, 11:09, James Kanze wrote:On Jan 21, 11:24 pm, Loïc Joly
wrote:- Les threads pour faire plus de choses en même temps.
Est-ce que tu veux dire : pour pouvoir interrompre une activité
pour en traiter quelque chose de plus importante ? Genre,
remettre à jour la graphique, bien qu'il y ait un calcul
important qui n'a pas fini.
Oui. Dit autrement, des threads pour la réactivité, plus que pour les
performances.
Voilà le mot que je cherchais : réactivitité.
Les termes generalement utilises dans la litterature sont
'concurrence' (reactivite) et 'parallelisme' (performance).
On 21 jan, 15:00, James Kanze wrote:On Jan 21, 11:16 am, Luc Hermitte wrote:On 18 jan, 09:29, James Kanze wrote:[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
J'ai pas mal utilisé ACE ces derniers temps. J'apprécie la richesse
des patterns, mais parfois l'utilisabilité, pour reprendre tes mots,
laisse effectivement à désirer. :(
Seulement, je ne connais pas d'autre bibliothèque qui
fournisse autant de choses
-- en plus des contraintes projet
qui fait que ACE restera où il est pendant des années encore.Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
ACE ne propose pas que ce modèle (on a aussi des threads fonction, les
futures, ...). Mais j'avoue que c'est celui d'ACE que j'utilise
majoritairement, voire exclusivement. En grande partie parce que les
ACE_Task intègrent des messages blocks -- cf plus bas.C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Ent re
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problème s
introduits. Merci.
[...]
(c'est pénible ces spams qui usurpent nos identités)
On 21 jan, 15:00, James Kanze <james.ka...@gmail.com> wrote:
On Jan 21, 11:16 am, Luc Hermitte <luc.hermi...@gmail.com> wrote:
On 18 jan, 09:29, James Kanze <james.ka...@gmail.com> wrote:
[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
J'ai pas mal utilisé ACE ces derniers temps. J'apprécie la richesse
des patterns, mais parfois l'utilisabilité, pour reprendre tes mots,
laisse effectivement à désirer. :(
Seulement, je ne connais pas d'autre bibliothèque qui
fournisse autant de choses
-- en plus des contraintes projet
qui fait que ACE restera où il est pendant des années encore.
Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
ACE ne propose pas que ce modèle (on a aussi des threads fonction, les
futures, ...). Mais j'avoue que c'est celui d'ACE que j'utilise
majoritairement, voire exclusivement. En grande partie parce que les
ACE_Task intègrent des messages blocks -- cf plus bas.
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Ent re
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problème s
introduits. Merci.
[...]
(c'est pénible ces spams qui usurpent nos identités)
On 21 jan, 15:00, James Kanze wrote:On Jan 21, 11:16 am, Luc Hermitte wrote:On 18 jan, 09:29, James Kanze wrote:[...] et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position.
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Je sais qu'il en a écrit. Je ne sais pas trop ce qu'ils
valent ; quand j'ai essayé d'utiliser ACE, j'en étais très
deçu, aussi bien côté qualité que côté utilisabilité.
J'ai pas mal utilisé ACE ces derniers temps. J'apprécie la richesse
des patterns, mais parfois l'utilisabilité, pour reprendre tes mots,
laisse effectivement à désirer. :(
Seulement, je ne connais pas d'autre bibliothèque qui
fournisse autant de choses
-- en plus des contraintes projet
qui fait que ACE restera où il est pendant des années encore.Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.)
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Malheureusement, ce sont des choses que j'ai appris par ci, par
là, sans vraiment savoir où. Un modèle, c'est évident : c'est
celui de ACE, qui est aussi plus ou moins celui de Java -- 'est
grosso mode l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
ACE ne propose pas que ce modèle (on a aussi des threads fonction, les
futures, ...). Mais j'avoue que c'est celui d'ACE que j'utilise
majoritairement, voire exclusivement. En grande partie parce que les
ACE_Task intègrent des messages blocks -- cf plus bas.C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. Ent re
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problème s
introduits. Merci.
[...]
(c'est pénible ces spams qui usurpent nos identités)
(c'est pénible ces spams qui usurpent nos identités)
N'est-ce pas ? Mais je crains qu'il n'y a rien à faire, au moins
pas sans un effort démesuré.
(c'est pénible ces spams qui usurpent nos identités)
N'est-ce pas ? Mais je crains qu'il n'y a rien à faire, au moins
pas sans un effort démesuré.
(c'est pénible ces spams qui usurpent nos identités)
N'est-ce pas ? Mais je crains qu'il n'y a rien à faire, au moins
pas sans un effort démesuré.
On Tue, 22 Jan 2008 06:57:54 -0800 (PST), James Kanze
:(c'est pénible ces spams qui usurpent nos identités)
N'est-ce pas ? Mais je crains qu'il n'y a rien à faire, au moins
pas sans un effort démesuré.
Étant donné que je n'ai pas vu ces spams, je ne peux que conseiller
d'utiliser news.free.fr, serveur décent aux règles de filtrage
manifestement efficaces. (Bien entendu, si je me permets de le
conseiller, c'est parce que tout résident français peut obtenir un
accès gratuitement.)
On Tue, 22 Jan 2008 06:57:54 -0800 (PST), James Kanze
<james.ka...@gmail.com>:
(c'est pénible ces spams qui usurpent nos identités)
N'est-ce pas ? Mais je crains qu'il n'y a rien à faire, au moins
pas sans un effort démesuré.
Étant donné que je n'ai pas vu ces spams, je ne peux que conseiller
d'utiliser news.free.fr, serveur décent aux règles de filtrage
manifestement efficaces. (Bien entendu, si je me permets de le
conseiller, c'est parce que tout résident français peut obtenir un
accès gratuitement.)
On Tue, 22 Jan 2008 06:57:54 -0800 (PST), James Kanze
:(c'est pénible ces spams qui usurpent nos identités)
N'est-ce pas ? Mais je crains qu'il n'y a rien à faire, au moins
pas sans un effort démesuré.
Étant donné que je n'ai pas vu ces spams, je ne peux que conseiller
d'utiliser news.free.fr, serveur décent aux règles de filtrage
manifestement efficaces. (Bien entendu, si je me permets de le
conseiller, c'est parce que tout résident français peut obtenir un
accès gratuitement.)
On Jan 22, 11:10 am, Luc Hermitte wrote:[...] l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
[...]
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. E ntre
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problè mes
introduits. Merci.
Le problème est simple. Si on démarre le thread dans le
constructeur (comme fait Java), il risque de démarrer avant que
le constructeur de la classe dérivée ait fini.
On Jan 22, 11:10 am, Luc Hermitte <luc.hermi...@gmail.com> wrote:
[...] l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
[...]
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. E ntre
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problè mes
introduits. Merci.
Le problème est simple. Si on démarre le thread dans le
constructeur (comme fait Java), il risque de démarrer avant que
le constructeur de la classe dérivée ait fini.
On Jan 22, 11:10 am, Luc Hermitte wrote:[...] l'utilisation du modèle du méthode template pour la
class Thread, avec customisation par dérivation pour la fonction
à exécuter dans le thread.
[...]
C-à-d state of the art il y a quinze
ans, mais avec des problèmes bien connus entre temps. (Java
l'étend en offrant l'option entre le modèle du méthode template
et le modèle stratégie, avec customisation par un délégué. E ntre
temps, il est fortement conseillé d'utiliser le délégué.)
OK, je vais voir à trouver des références au sujet de ces problè mes
introduits. Merci.
Le problème est simple. Si on démarre le thread dans le
constructeur (comme fait Java), il risque de démarrer avant que
le constructeur de la classe dérivée ait fini.