Bonjour à tous,
je ne sais pas trop où poser cette question vu qu'il ne s'agit pas exactement de programmation mais pas vraiment de système non plus. J'espère que je l'ai placé au bon endroit.
Je n'ai pas réussit à trouver l'information suivante :
Lorsqu'un programme (par exemple multi-thread) fait appel à une DLL. Elle est d'abord chargé en mémoire puis exécuté. mais comment celà se passe-t-il?
la DLL est-elle chargé et éxécuté au sein du thread appellant? dans un nouveau thread du processus appellant? dans un nouveau processus?
J'étudie un programme qui inclut plusieurs services d'alertes complètement différents programmé en multi-thread. Une partie du programme ("composant de base") inclut des fonctions communes à tous les services (diffusions des alertes, décodages des trames réseau, ect...). 1 service utilise une DLL externe pour son traitement (en fait ce service n'est qu'une passerelle accès vers la DLL).
Je voudrais aussi savoir s'il était possible de relancer uniquement la dll en cas de plantage ou s'il fallait (comme pour les autres services) relancer tout le programme à cause d'un seul service planté?
La réponse à cette question me permettera soit de préconiser soit un developpement en multi-processus (il faut impérativement pouvoir ne relancer que le service de planté et pas tout le programme - d'ailleur il faut aussi que le programme continue de tourné s'il y a un service de planté) ou soit d'externaliser les services dans des DLL. (qui est la voie prise aujourd'hui mais dont j'ai bien l'impression qu'elle ne résoudra rien)
Merci par avance
Partager