a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

淺析android中的線程封裝

2020-04-11 12:02:47
字體:
來源:轉載
供稿:網友

簡單寫一下android 對線程 的c++封裝~~~其實API已經寫得很清楚了~~

封裝 的文件 :/frameworks/base/include/utils/threads.h

這里不討論具體實現,具體實現是和系統 相關聯的~~首先Anroid提供了幾個與直接創建線程的函數:

復制代碼 代碼如下:

inline bool createThread(thread_func_t f, void *a) 

inline bool createThreadEtc(thread_func_t entryFunction,
                            void *userData,
                            const char* threadName = "android:unnamed_thread",
                            int32_t threadPriority = PRIORITY_DEFAULT,
                            size_t threadStackSize = 0,
                            thread_id_t *threadId = 0)

inline thread_id_t getThreadId()


下面看看Android的mutex,基本和posix的mutex很像,唯一增加了一個Mutex::Autolock,這個自動鎖用得是比較多的,在作用域里加鎖,脫離作用域就會自動解鎖。
復制代碼 代碼如下:

class Autolock {
    public:
        inline Autolock(Mutex& mutex) : mpMutex(&mutex) { mutex.lock(); }
        inline Autolock(Mutex* mutex) : mpMutex(mutex) { mutex->lock(); }
        inline ~Autolock() { mpMutex->unlock(); }
    private:
        Mutex*  mpMutex;
    };

再看看Andorid的Condition,用法基本和posix差不多,因為本身是條件變量所以只有一個mutex參數~~

最后看看android的thread類,在實際使用的過程中都是繼承這個thread類來創建自己的thread類,并定義線程的執行內容,下面主要圍繞創建自己的線程類需要實現的幾個函數說說:

class Thread : virtual public RefBase
首先它繼承自RefBase類,一般在使用的時候要實現onFirstRef()這個父類函數,一般經典 的用法是在里面運行Thread的run函數,這樣在創建thread的實例 的時候就開始運行這個線程了。當然也可以不在這里執行run()函數,在其他地方執行run()函數啟動這個線程。  

復制代碼 代碼如下:

virtual status_t    run(    const char* name = 0,
                                int32_t priority = PRIORITY_DEFAULT,
                                size_t stack = 0);

創建一個thread實例的時候,線程并沒有運行,只有在執行run()函數的時候,線程才開始真正的開始運行。

virtual status_t    readyToRun();
這個函數定義thread執行前的初始化工作

virtual bool        threadLoop() = 0;
這個函數是每個線程類都要實現的,在這里定義thread的執行內容,這個函數如果返回true,則函數會不停地執行threadloop中的內容,如果這個函數返回false,則threadloop中的內容僅僅執行一次線程就會退出。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91在线视频播放 | 日韩精品一区二区三区老鸭窝 | 91精品中文字幕一区二区三区 | 午夜欧美 | 日本视频网 | 97国产精品视频人人做人人爱 | 亚洲人成网亚洲欧洲无码 | 福利精品| 91精品国产色综合久久不卡98口 | 久在线视频 | 欧美日韩色图 | 日韩电影一区二区三区 | 一卡二卡久久 | 欧美一区免费 | www国产亚洲精品久久网站 | 99爱视频 | 在线99视频| 久久久精品免费观看 | 日韩avxxxx | 99久久久| 99在线视频精品 | 欧美一区不卡 | 99热.com| 色综合天天天天做夜夜夜夜做 | 国产视频久久 | 欧美视频在线免费 | 在线va | 亚洲精品日韩综合观看成人91 | 亚洲日韩中文字幕天堂不卡 | 五月婷婷在线播放 | 欧美黄视频在线观看 | 成人在线播放 | 成人精品久久久 | 久久亚洲视频 | 黄色国产精品 | 国产激情精品一区二区三区 | 自拍偷拍视频网站 | avhd101在线成人播放 | 欧美国产在线一区 | 婷婷在线观看视频 | 欧美中文在线观看 |