[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux] Re: Vectorisation de code C++
C++ est un langage de programmation orienté objet -> différent de la
programmation séquencielle.
Oui, mais pas cet aspect-là ;-)
L'orienté objet tend à découper un programme en tâches et
responsabilités distinctes. Sur ce point, l'exécution de certaines
tâches pourraient s'exécuter simultanément sur plusieurs CPU vu la
structure du langage. MAIS dans tes classes C++, tu vas retrouver des
...
hein ?
Je vois vraiment pas le rapport ;-)
A moins de p.ex. créer des classes faisant les calculs, d'utiliser p.ex. ZThread
et de faire hériter ces classes de Thread (et donc d'en faire des threads ;-)).
class CalculFailed : public std::exception {
};
class CalculLourd : public Thread {
public:
virtual void calcule(const CalculLourdParams&) throw (CalculFailed) = 0;
virtual void run(void* pParams) {
calcule(*((CalculLourdParams*)pParams)));
}
};
class CalculLourd1 : public CalculLourd {
public:
virtual void calcule(const CalculLourParams& params) throw (CalculFailed) {
// fais ton calcul lourd #1 ici ;-)
}
}
class CalculLourd2 : public CalculLourd {
public:
virtual void calcule(const CalculLourParams& params) throw (CalculFailed) {
// fais ton calcul lourd #2 ici ;-)
}
}
et puis s'arranger que ces classes de calcul soient lancés comme 2 threads en
parallèle au moment opportun.
Un join permettra d'attendre que les 2 threads soient finis avant de continuer.
--
-o) Pascal Bleser ATOS Origin/Aachen(DE) |
/\\ <pascal.bleser@atosorigin.com> |
_\_v <guru@linuxbe.org> |
---------------------------------------------|
Jesus saves,Buddha makes incremental backups :
---------------------------------------------'
_______________________________________________
Linux Mailing List
LCP - 11 Mai - http://www.unixtech.be/lcp.php
Archives: http://www.unixtech.be/mailman/listinfo/linux