欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析android中的線(xiàn)程封裝

 更新時(shí)間:2013年09月27日 11:06:22   作者:  
下面我就簡(jiǎn)單的說(shuō)一下android對(duì)線(xiàn)程的c++封裝。需要的朋友可以過(guò)來(lái)參考下。希望對(duì)大家有所幫助

簡(jiǎn)單寫(xiě)一下android 對(duì)線(xiàn)程 的c++封裝~~~其實(shí)API已經(jīng)寫(xiě)得很清楚了~~

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

這里不討論具體實(shí)現(xiàn),具體實(shí)現(xiàn)是和系統(tǒng) 相關(guān)聯(lián)的~~首先Anroid提供了幾個(gè)與直接創(chuàng)建線(xiàn)程的函數(shù):

復(fù)制代碼 代碼如下:

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很像,唯一增加了一個(gè)Mutex::Autolock,這個(gè)自動(dòng)鎖用得是比較多的,在作用域里加鎖,脫離作用域就會(huì)自動(dòng)解鎖。
復(fù)制代碼 代碼如下:

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差不多,因?yàn)楸旧硎菞l件變量所以只有一個(gè)mutex參數(shù)~~

最后看看android的thread類(lèi),在實(shí)際使用的過(guò)程中都是繼承這個(gè)thread類(lèi)來(lái)創(chuàng)建自己的thread類(lèi),并定義線(xiàn)程的執(zhí)行內(nèi)容,下面主要圍繞創(chuàng)建自己的線(xiàn)程類(lèi)需要實(shí)現(xiàn)的幾個(gè)函數(shù)說(shuō)說(shuō):

class Thread : virtual public RefBase
首先它繼承自RefBase類(lèi),一般在使用的時(shí)候要實(shí)現(xiàn)onFirstRef()這個(gè)父類(lèi)函數(shù),一般經(jīng)典 的用法是在里面運(yùn)行Thread的run函數(shù),這樣在創(chuàng)建thread的實(shí)例 的時(shí)候就開(kāi)始運(yùn)行這個(gè)線(xiàn)程了。當(dāng)然也可以不在這里執(zhí)行run()函數(shù),在其他地方執(zhí)行run()函數(shù)啟動(dòng)這個(gè)線(xiàn)程。  

復(fù)制代碼 代碼如下:

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

創(chuàng)建一個(gè)thread實(shí)例的時(shí)候,線(xiàn)程并沒(méi)有運(yùn)行,只有在執(zhí)行run()函數(shù)的時(shí)候,線(xiàn)程才開(kāi)始真正的開(kāi)始運(yùn)行。

virtual status_t    readyToRun();
這個(gè)函數(shù)定義thread執(zhí)行前的初始化工作

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

相關(guān)文章

  • Android 混淆代碼詳解及實(shí)例

    Android 混淆代碼詳解及實(shí)例

    本文主要介紹Android 混淆代碼的資料,這里整理了詳細(xì)資料及代碼實(shí)例,有需要做Android 混淆代碼的朋友可以參考下
    2016-09-09
  • Android中常用的XML生成方法實(shí)例分析

    Android中常用的XML生成方法實(shí)例分析

    這篇文章主要介紹了Android中常用的XML生成方法,以實(shí)例形式較為詳細(xì)的分析了Android生成XML的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • ExpandListView實(shí)現(xiàn)下拉列表案例

    ExpandListView實(shí)現(xiàn)下拉列表案例

    這篇文章主要為大家詳細(xì)介紹了ExpandListView實(shí)現(xiàn)下拉列表案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android?數(shù)據(jù)壓縮淺析

    Android?數(shù)據(jù)壓縮淺析

    這篇文章主要為大家介紹了Android?數(shù)據(jù)壓縮方法淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • WindowManagerService服務(wù)是如何以堆棧的形式來(lái)組織窗口

    WindowManagerService服務(wù)是如何以堆棧的形式來(lái)組織窗口

    我們知道,在Android系統(tǒng)中,Activity是以堆棧的形式組織在ActivityManagerService服務(wù)中的;在本文中,我們就詳細(xì)分析WindowManagerService服務(wù)是如何以堆棧的形式來(lái)組織窗口的
    2013-01-01
  • Android序列化之Parcelable和Serializable的使用詳解

    Android序列化之Parcelable和Serializable的使用詳解

    本篇文章主要介紹了Android序列化之Parcelable和Serializable的使用詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android?shape與selector標(biāo)簽使用詳解

    Android?shape與selector標(biāo)簽使用詳解

    Android中提供一種xml的方式,讓我們可以自由地定義背景,比較常用的就是shape標(biāo)簽和selector標(biāo)簽,這篇文章主要介紹了Android?shape與selector標(biāo)簽使用,需要的朋友可以參考下
    2022-05-05
  • Android 坐標(biāo)系與視圖坐標(biāo)系圖解分析

    Android 坐標(biāo)系與視圖坐標(biāo)系圖解分析

    下面小編就為大家?guī)?lái)一篇Android 坐標(biāo)系與視圖坐標(biāo)系圖解分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Android中讓圖片自適應(yīng)控件的大小的方法

    Android中讓圖片自適應(yīng)控件的大小的方法

    Android中可以自動(dòng)切換橫豎屏,還有不同大小的分辨率,如何讓一張圖片適應(yīng)以上要求呢,下面講解了實(shí)現(xiàn)的方法,有需要的朋友可以參考一下
    2013-09-09
  • 分析Android Choreographer源碼

    分析Android Choreographer源碼

    Choreographer的作用主要是配合Vsync,給上層App的渲染提供一個(gè)穩(wěn)定的Message處理的時(shí)機(jī),也就是Vsync到來(lái)的時(shí)候,系統(tǒng)通過(guò)對(duì)Vsync信號(hào)周期的調(diào)整,來(lái)控制每一幀繪制操作的時(shí)機(jī)
    2021-06-06

最新評(píng)論