Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CORBA Discussion :

question sur le comportement des threads


Sujet :

CORBA

  1. #1
    Futur Membre du Club
    question sur le comportement des threads
    Bonjour,

    J'ai deux serveurs A et B. Le A fait office de client et implémente
    la stratégie thread pooll. Le B effectue les traitements et implémente la stratégie
    thread-per-request.

    Qd le thread de A envoie une requete à B, est-ce qu'il est bloqué jusqu'à la fin
    du traitement par le thread de B ?


  2. #2
    Membre habitué
    quoteQd le thread de A envoie une requete à B, est-ce qu'il est bloqué jusqu'à la fin du traitement par le thread de B ?[[/quote]

    J'avoue que la réponse logique me parait être par définition "oui": un thread A sera pas définition bloqué jusqu'à la fin du traitement par le thread B.

    Il y a un excellent article sur le sujet, intitulé "Evaluating and Optimizing Thread Pool Strategies for Real-Time CORBA" sur
    http://portal.acm.org/citation.cfm?id=384226&dl=ACM&coll=portal

    et sinon, tu as un exemple d'appli CORBA multi-thread en utilisant ACE et TAO sur:
    http://www.cs.wustl.edu/~schmidt/PDF/MT-CORBA4.pdf

    Cordialement.

  3. #3
    Futur Membre du Club
    '
    j'avoue que la réponse logique me parait être par définition "oui": un thread A sera pas définition bloqué jusqu'à la fin du traitement par le thread B.
    Oui tu as raison, le thread de A est en attente de la fin du traitement par le thread de B.
    Si on veut que le thread de A n'attende pas, il faudrait dans ce cas là spécifier dans
    le fichier idl que la fonction est du type "oneway" (du moins pour TAO).

    Merci beaucoup pour tes infos.

    P.S: j'ai mis un peu de temps pour répondre, vacances obligent + TAO qui me prend
    le chou.

  4. #4
    Membre régulier
    oneway aussi pour OmniORB pour les methodes asynchrones
    je crois que ces vrais pour pratiquement tous les orbs

    /////////////////////////////////////////////////////////////
    quand tu utilises dans le code client :
    myClasse_ptr--->myFunction();
    si ta fonction n'est pas one way (declaration dans le fichier idl) le client envoie les donnees necessaire sur le bus et va attendre pour simplifier "l'execution du code de myFunction()" dans le serveur
    qui va lui ausssi mettre sur le bus si necessaire (les donnees resultat) (marshalling/unmarshalling)
    ...... etc

    tout le monde connait la suite le client attend et recupere
    c est du synchrone

  5. #5
    Membre régulier
    par contre j'espere que tu as pas bcp de requetes car un thread par request c'est super violent