那麼..我在這裏要做的是實現類似點對點客戶端。因此,它將啓動一個客戶端線程和一個服務器線程。兩個線程和1個服務,或每個線程的服務?
我知道服務本身運行在主GUI線程中,所以我將不得不爲每個服務器和客戶端啓動幾個獨立的線程(或Asynctasks?)。我不太確定的唯一的事情是,如果我最好有1個服務啓動2個線程,或者2個服務,每個服務啓動他們自己的線程。
您認爲如何?哪種方式更好的性能?或者它是不相關的?
感謝 尼爾森
那麼..我在這裏要做的是實現類似點對點客戶端。因此,它將啓動一個客戶端線程和一個服務器線程。兩個線程和1個服務,或每個線程的服務?
我知道服務本身運行在主GUI線程中,所以我將不得不爲每個服務器和客戶端啓動幾個獨立的線程(或Asynctasks?)。我不太確定的唯一的事情是,如果我最好有1個服務啓動2個線程,或者2個服務,每個服務啓動他們自己的線程。
您認爲如何?哪種方式更好的性能?或者它是不相關的?
感謝 尼爾森
從表現來看,這是無關緊要的。
因此,一切都取決於你的兩個任務的語義,你有多少代碼共享等也許有BilthonService
跨越ClientThread
和ServerThread
是不是太糟糕,因爲該服務類本身也就勉強有任何代碼。
你應該閱讀從Android FundamentalsProcesses and Threads章如果你還沒有讀。
每個服務應該跨越它自己的線程。當每個新的請求被接收時,跨越專用於該通信的新線程。這樣,您可以在服務器上同時處理多個請求。
嗯是的..我已經閱讀過這一章,但是並沒有對跨越2個或更多線程的服務做任何明確的說明。 – Bilthon 2010-11-22 14:17:16
爲了在相同的時間內處理每個請求,您需要讓它在單獨的線程中運行。 – Pentium10 2010-11-22 14:18:00