2010-11-20 56 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