[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