Android線程終止與回收的方法是什么

這篇“Android線程終止與回收的方法是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Android線程終止與回收的方法是什么”文章吧。

創(chuàng)新互聯(lián)公司是一家專業(yè)提供于田企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為于田眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

線程終止:
1.start_routine回調(diào)函數(shù)執(zhí)行return;
2.線程自身調(diào)用pthread_exit();
3.其他線程調(diào)用pthread_cancel(ID)將此進(jìn)程終止;
任意線程調(diào)用exit()使整個(gè)進(jìn)程退出。

線程回收:線程默認(rèn)joinable狀態(tài),終止后需使用pthread_join回收資源;將子線程使用pthread_detach從主線程分離后處于unjoinable狀態(tài),系統(tǒng)等線程退出后自動(dòng)回收資源。
常用的 函數(shù)調(diào)用如下:
pthread_exit():結(jié)束本線程
#include
void pthread_exit(void *retval);
參數(shù)含義:
retval:線程返回值,其他線程調(diào)用pthread_join()接收。

pthread_cancel():向指定線程發(fā)出取消請(qǐng)求,使用pthread_join回收,
#include
int pthread_cancel(pthread_t thread);
參數(shù)含義:
thread:要終止的線程ID;
返回值:執(zhí)行成功返回0,成功不一定會(huì)讓指定線程終止;執(zhí)行失敗返回錯(cuò)誤號(hào),

pthread_join():等待線程終止回收資源,獲取返回值retval,
#include
int pthread_join(pthread_t thread, void **retval);
參數(shù)含義:
thread:線程 ID。
retval:存放回收線程的返回值。
返回值:成功返回0,失敗返回錯(cuò)誤號(hào)。

pthread_detach():分離線程,線程終止后系統(tǒng)自動(dòng)清理,分離后不能再使用join獲取狀態(tài),
#include
int pthread_detach(pthread_t thread);
參數(shù)含義:要分離的線程 ID。
返回值:成功返回0,失敗返回錯(cuò)誤號(hào)。
本章代碼在thread/目錄下,實(shí)驗(yàn)1:路徑為:11_Linux系統(tǒng)開發(fā)進(jìn)階\Linux系統(tǒng)編程_章節(jié)使用資料。
使用pthread_cancel讓線程退出,pthread_join回收,代碼在cancel.c:
Android線程終止與回收的方法是什么
編譯:gcc cancel.c -o cancel -lpthread,運(yùn)行結(jié)果:
Android線程終止與回收的方法是什么
使用pthread_exit讓線程退出,pthread_join回收線程資源,代碼在/thread/exit/目錄下,
線程依次使用pthread_exit退出,然后pthread_join依次回收線程,main.c:
Android線程終止與回收的方法是什么
編譯運(yùn)行,可以看到線程按順序依次退出并打印pthread_exit的返回值:
Android線程終止與回收的方法是什么
實(shí)驗(yàn)三:
使用pthread_detach()設(shè)置線程分離,pthread_exit()退出后,系統(tǒng)自動(dòng)回收,最后調(diào)用pthread_join()發(fā)現(xiàn)報(bào)錯(cuò),說(shuō)明線程分離后線程自動(dòng)釋放。
實(shí)驗(yàn)代碼在detach.c:路徑為:11_Linux系統(tǒng)開發(fā)進(jìn)階\Linux系統(tǒng)編程_章節(jié)使用資料。
Android線程終止與回收的方法是什么
Android線程終止與回收的方法是什么
編譯,gcc -o detach detach.c -lpthread,運(yùn)行結(jié)果如下,發(fā)現(xiàn)使用pthread_join()報(bào)錯(cuò):
Android線程終止與回收的方法是什么

以上就是關(guān)于“Android線程終止與回收的方法是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁(yè)名稱:Android線程終止與回收的方法是什么
路徑分享:http://bm7419.com/article32/pscipc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、電子商務(wù)、域名注冊(cè)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)