所以我有了它的主機和客戶端我的Android藍牙應用。問題是,因爲我正在建立多個連接,所以我需要一個線程來處理每個連接。這都是牛奶,所以我想我會把所有的線程都粘在一個數組中。一個小小的研究表明,一個更好的方法是使用線程池,但我似乎無法理解它的工作原理。另外,實際上甚至可以在數組中保存線程?Android線程池管理多個藍牙handeling線程?
2
A
回答
2
線程池周圍的想法,因爲一遍一遍地創建線程是耗時的建成,我們應該嘗試儘可能多地回收。因此,一個線程池是執行的作業,但是當他們完成一個任務沒有被破壞,而是線程的集合「重返池」,要麼採取另外的工作或處於閒置狀態,如果沒有什麼做的。
通常底層的實現是在程序員把工作線程安全的隊列和一堆被實施託管線程保持輪詢(我沒有暗示忙紡必然)工作隊列中。
在Java線程池由ExecutorService
類表示,其可以是:
- 固定 - 創建線程池具有固定數目的線程
- 緩存 - 動態地創建和銷燬線程根據需要
- 單 - 一個通過單個線程
注池,由於線程池中的線程在以上(即再循環)描述的,在第方式操作不建議有那些阻塞I/O操作,因爲採取這些工作線程將從池中被有效地去除,直到他們完成作業的工作,因此你可能有死鎖固定的線程池電子情況。
至於線程的陣列,這是因爲在創建任何對象數組一樣簡單:
Thread[] threads = new Thread[10]; // array of 10 threads
相關問題
- 1. 在一個線程池管理線程
- 2. 線程是否由線程池管理?
- 3. 如何使用線程/線程池管理多個操作?
- 4. 管理多線程存儲池
- 5. Android關閉藍牙插座/線程
- 6. 藍牙線程或Asynctask?
- 7. 藍牙更新UI線程
- 8. 多線程 - 新線程vs線程池
- 9. Android中的多個藍牙Socket讀取(單線程)
- 10. Android藍牙:從UI線程開始的線程阻塞UI線程
- 11. 背景藍牙應用程序 - 線程?
- 12. 管理線程池的pythonic方式
- 13. 在C#中的線程池類管理線程執行
- 14. C#下載管理器(線程,線程池,BeginInvoke,BackgroundWorker)
- 15. 爲什麼線程池以這種方式管理線程?
- 16. 如何創建多個線程池(即多個執行程序,每個線程池都有一個線程)
- 17. 管理藍牙連接Android
- 18. 線程池vs許多單線程
- 19. 有很多線程的線程池queueuserworkitem
- 20. 使用線程池的多線程
- 21. 使用多線程的線程池
- 22. Android的線程管理
- 23. android線程管理onPause
- 24. 查看多線程管理?
- 25. 線程管理
- 26. 管理一個守護進程線程池
- 27. 多處理和線程和線程池怎麼工作
- 28. 多處理池工作線程中的線程標識符
- 29. 如何使用類 - 藍牙線程
- 30. 藍牙LE掃描儀線程
你可以把'Thread's在一個數組或一個'List'。他們只是對象。 – Gray 2012-03-14 17:57:34