OVH Cloud OVH Cloud

appli multi thread +dlls (partage memoire?)

1 réponse
Avatar
dark poulpo
bonjour,

voila, j'ai une appli multithread,

cette appli, afin d'etre facilement mise a jour comportera plusieurs dlls
(A, B, ... + la dll principale)
le programme va lancer une fonction de la dll principale (qui se chargera de
faire du multithread en appelant une fonction de la dll X)
les autres dll servent pour des fonctions bien precises et separées. la dll
X peut appeler des fonctions des autres dll. mais ce que je voudrais savoir,
c'est est ce que si les dll A,B,... ont des parametres qui doivent etre
utiliser par toutes les threads, est ce que ses parametres seront bien
partagé? ou il faudra que je les declare en section shared? j epose cetet
question maintenant avant de commencer, car jai pas envie de tout casser
apres!!!!!

jespere avoir été clair, au cas ou je vais donner un exemple en code pour
comprendre mon recit:

prog ()
{
charge_toutes_les_dll_en_memoire(); // en dynamique pour des raisons de mise
a jours, pas de lib sur les dll

dlla.chargefichierconfig("blabla.txt");
dllb.chargefichierprofil("profil.txt");


dllprincipale.
dllprincipale.run();

fermetouteslesdll();
}
*************************

dllprincipale.run() // toutes les autres dll utilisé dlla,b, c, ... sont en
.lib
{

while (!sortir)
{
...
if (...) creerthread(dllc.run());
}

}
***************************

dllc.run() // toutes les autres dll utilisé dlla,b, d, ... sont en .lib
{
...
dlla.fonction();
...
dllb.fonction();
...
}






cette facon est t'elle correct?

1 réponse

Avatar
Arnaud Debaene
dark poulpo wrote:
bonjour,

voila, j'ai une appli multithread,

cette appli, afin d'etre facilement mise a jour comportera plusieurs
dlls (A, B, ... + la dll principale)
le programme va lancer une fonction de la dll principale (qui se
chargera de faire du multithread en appelant une fonction de la dll X)
les autres dll servent pour des fonctions bien precises et separées.
la dll X peut appeler des fonctions des autres dll. mais ce que je
voudrais savoir, c'est est ce que si les dll A,B,... ont des
parametres qui doivent etre utiliser par toutes les threads, est ce
que ses parametres seront bien partagé?


Oui, si les DLLs sont lancées dans le cadre du même processus. et ca n'a
*rien* à voir avec le multithreading. Par contre, attention à la
synchronisation pour l'accès aux variables utilisées par plusieurs threads.

Arnaud