我想要找出線程和處理程序之間的區別。創建一個新的處理程序是否會創建一個新的線程?當一個新的處理程序使用post()運行時,它是否創建了一個新的線程?請詳細解釋線程和處理程序有什麼區別
18
A
回答
20
線程是通用的處理任務,可以處理大部分事情,但他們無法做的一件事是更新UI。
另一方面,處理程序綁定到允許您與UI線程通信的線程(更新UI)。
因此,舉例來說,通過發佈到處理程序的消息(Runnable)顯示一個進程或更新進度條,但如果以線程的形式啓動此可運行的程序,則無法進行此操作。
使用處理程序,您還可以擁有MessageQueuing,調度和重複等功能。
我還沒有遇到一種情況,我需要在android中的線程。我主要使用AsyncTasks和Handlers的組合。
上述任務的處理程序。
AsyncTasks下載/數據的讀取和查詢等
你可以在這裏閱讀開發商的文章「Painless Threading」在Android的更多線程。
糾錯: 每個Handler實例都與單個線程和該線程的消息隊列相關聯。他們不是代表他們自己的線程。如here所述。
2
線程定義進程正在運行。就像你在android中有一個主要的(UI線程)。並且所有其他線程都在後臺運行(並行)。
處理程序是完全不同的,它就像啓動一個處理程序中定義的任務..
要清除出你的困惑,並執行Android的線程,您必須閱讀: http://android-developers.blogspot.com/2009/05/painless-threading.html
,我會建議AsyncTask,而不是在所有情況下都使用Thread。
0
我們爲什麼使用處理程序與線程:
當我們安裝在Android的應用程序則創建該應用程序調用主UI線程,該線程中運行的所有活動,通過Android的單線程模式線程規則我們無法直接訪問該活動內定義的另一個線程的UI元素(位圖,文本視圖等)。
因此,如果想要通過另一個線程訪問主UI線程元素,那麼我們將使用處理程序。
相關問題
- 1. 線程處理中的looper和while循環有什麼區別?
- 2. 發佈工具和索引處理程序有什麼區別?
- 3. click事件處理程序和ngClick指令有什麼區別?
- 4. 叉子和線程有什麼區別?
- 5. 手柄和線程有什麼區別?
- 6. openMP和線程池有什麼區別?
- 7. JavaScript - 事件處理程序和偵聽程序有什麼區別?
- 8. 後(Runnable r)與主線程的處理程序和在主線程中運行有什麼區別
- 9. 代碼和程序有什麼區別?
- 10. 線程感知和線程安全有什麼區別?
- 11. CLR Worker線程和Worker線程有什麼區別?
- 12. 使用線程池和普通線程有什麼區別?
- 13. 內核線程和用戶線程有什麼區別?
- 14. 工作線程和I/O線程有什麼區別?
- 15. windows線程池和CLR線程池有什麼區別
- 16. UI線程和渲染線程有什麼區別?
- 17. 時間多線程和超線程之間有什麼區別?
- 18. 遠程處理中CAO和SAO有什麼區別?
- 19. 網絡服務和遠程處理有什麼區別?
- 20. 靜態事件處理程序和非靜態事件處理程序之間有什麼區別
- 21. 消息處理程序和命令處理程序之間有區別嗎?
- 22. 線程轉儲有什麼區別
- 23. UI線程有什麼特別之處?
- 24. 在後臺進程中分配和線程有什麼區別?
- 25. 線程關聯和進程關聯有什麼區別?
- 26. 用戶級線程和協程之間有什麼區別?
- 27. 線程堆棧和進程堆棧有什麼區別
- 28. CPP/CLI程序集和CS/VB程序集有什麼區別?
- 29. Rack應用程序和Sinatra應用程序有什麼區別?
- 30. 程序和應用程序有什麼區別?
處理程序不是線程 – Selvin 2012-02-24 19:07:27
正確,已更正 – MahdeTo 2012-02-24 19:16:11