2010-11-20 59 views
0

那么..我在这里要做的是实现类似点对点客户端。因此,它将启动一个客户端线程和一个服务器线程。两个线程和1个服务,或每个线程的服务?

我知道服务本身运行在主GUI线程中,所以我将不得不为每个服务器和客户端启动几个独立的线程(或Asynctasks?)。我不太确定的唯一的事情是,如果我最好有1个服务启动2个线程,或者2个服务,每个服务启动他们自己的线程。

您认为如何?哪种方式更好的性能?或者它是不相关的?

感谢 尼尔森

回答

1

从表现来看,这是无关紧要的。

因此,一切都取决于你的两个任务的语义,你有多少代码共享等也许有BilthonService跨越ClientThreadServerThread是不是太糟糕,因为该服务类本身也就勉强有任何代码。

1

你应该阅读从Android FundamentalsProcesses and Threads章如果你还没有读。

每个服务应该跨越它自己的线程。当每个新的请求被接收时,跨越专用于该通信的新线程。这样,您可以在服务器上同时处理多个请求。

+0

嗯是的..我已经阅读过这一章,但是并没有对跨越2个或更多线程的服务做任何明确的说明。 – Bilthon 2010-11-22 14:17:16

+0

为了在相同的时间内处理每个请求,您需要让它在单独的线程中运行。 – Pentium10 2010-11-22 14:18:00