日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码

發布時間:2024/7/5 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://android.xsoftlab.net/training/multiple-threads/index.html

引言

大量的數據處理往往需要花費很長的時間,但如果將這些工作切分并行處理,那么它的速度與效率就會提升很多。在擁有多線程處理器的設備中,系統可以使線程并行運行。比如,使用多線程將圖像文件切分解碼展示要比單一線程解碼快得多。

這章我內容們將會學習如何設置并使用多線程及線程池。我們還會學習如何在一個線程中運行代碼以及如何使該線程與UI線程進行通信。

定義在線程中運行代碼

這節課我們會學習如何實現Runnable接口,該接口中的run()方法會在線程中單獨執行。你也可以將Runnable對象傳遞給一個Thread類。這種執行特定任務的Runnable對象在某些時候被稱為任務。

Thread類與Runnable類同屬于基礎類,它們僅提供了有限的功能。它們是比如HandlerThread, AsyncTask, 以及IntentService等線程功能類的基礎核心。這兩個類同樣屬于ThreadPoolExecutor的核心基礎。ThreadPoolExecutor會自動管理線程以及任務隊列,它甚至還可以使多個線程同時執行。

定義Runnable實現類

實現一個Runnable對象很簡單:

public class PhotoDecodeRunnable implements Runnable {...@Overridepublic void run() {/** Code you want to run on the thread goes here*/...}... }

實現run()方法

在Runnable的實現類中,Runnable的run()方法中所含的代碼將會被執行。通常來說,Runnable中可以做任何事情。要記得,這里的Runnable不會運行在UI線程,所以在它內部不能直接修改View對象這種UI對象。如果要與UI線程通訊,你需要使用到Communicate with the UI Thread課程中所描述的技術。

在run()方法的開頭處設置當前的線程使用后臺優先級。這種方式可以減少Runnable對象所屬線程與UI線程的資源爭奪問題。

這里還將Runnable對象所屬的線程引用存儲了起來。由Thread.currentThread()可以獲得當前的線程對象。

下面是代碼的具體實現方式:

class PhotoDecodeRunnable implements Runnable { .../** Defines the code to run for this task.*/@Overridepublic void run() {// Moves the current Thread into the backgroundandroid.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);.../** Stores the current Thread in the PhotoTask instance,* so that the instance* can interrupt the Thread.*/mPhotoTask.setImageDecodeThread(Thread.currentThread());...} ... }

總結

以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。