2010-11-20 45 views
0

Eh bien .. ce que j'essaie de faire ici est de mettre en œuvre quelque chose comme un client peer-to-peer. Cela étant, cela va démarrer un thread client et un thread serveur.Deux threads et 1 service, ou un service par thread?

Je sais que les services eux-mêmes s'exécutent dans le thread principal de l'interface graphique, donc je vais devoir démarrer quelques threads indépendants (ou Asynctasks?) Pour chaque serveur et client. La seule chose dont je ne suis pas sûr, c'est si je ferais mieux d'avoir 1 service démarrant 2 threads, ou peut-être 2 services, chacun d'entre eux commençant leur propre thread.

Qu'en pensez-vous? De quelle manière est-ce mieux perfomance-sage? ou est-ce hors de propos?

Merci Nelson

Répondre

1

En ce qui concerne les performances, ce n'est pas pertinent.

Donc, tout dépend de la sémantique de vos deux tâches, et combien le code vous voulez partager, etc. ayant peut-être un BilthonService Spanning un ClientThread et ServerThread est pas trop mal, étant donné que la classe de service lui-même aura à peine n'importe quel code.

1

Vous devriez lire Processes and Threads chapitre de Android Fundamentals si vous ne l'avez pas encore lu.

Chaque service doit couvrir son propre thread. Lorsque chaque nouvelle requête est reçue, étendez un nouveau thread dédié à cette communication. De cette façon, vous pouvez gérer plusieurs demandes en même temps sur votre serveur.

+0

Eh bien oui .. J'ai lu ce chapitre, mais il ne dit rien d'explicite sur un service couvrant 2 threads ou plus. – Bilthon

+0

Afin de server chaque requête dans le même temps, vous devez l'exécuter dans des threads séparés. – Pentium10