1.介紹
1.1定義
一個(gè)基本的CPU執(zhí)行單元 程序執(zhí)行流的最小單元
組成 線程ID + 程序計(jì)數(shù)器 + 寄存器集合 + 堆棧
線程自己不擁有系統(tǒng)資源,與其他線程共享進(jìn)程所擁有的全部資源
1.2 作用
減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開銷,提高操作系統(tǒng)的并發(fā)性能
2.線程分類
守護(hù)線程 非守護(hù)線程(用戶線程)
2.1 守護(hù)線程
守護(hù)用戶線程的線程,即在程序運(yùn)行時(shí)為其他線程提高一種通用服務(wù)
如 垃圾回收線程
thread.setDaemon(true); 設(shè)置為守護(hù)線程
2.2 非守護(hù)線程(用戶線程)
主線程 子線程
a. 主線程(UI線程)
Android 系統(tǒng)在程序啟東時(shí)會(huì)自動(dòng)自動(dòng)一條主線程
處理四大組件與用戶進(jìn)行交互的事件
因?yàn)橛脩綦S時(shí)會(huì)與界面發(fā)生交互户矢,因此主線程任何時(shí)候都必須保持很高的響應(yīng)速度卷玉,所以主線程不允許進(jìn)行耗時(shí)操作矢门,否則會(huì)出現(xiàn)ANR
b. 子線程(工作線程)
手動(dòng)創(chuàng)建的線程
耗時(shí)的操作
2.3 守護(hù)線程和非守護(hù)線程的區(qū)別
只要還有任何用戶線程在運(yùn)行兴泥,守護(hù)線程就不會(huì)終止
3.多線程的實(shí)現(xiàn)方式
4.線程聯(lián)合
線程A在占用CPU資源期間,通過調(diào)用join()方法中斷自身線程執(zhí)行,然后運(yùn)行聯(lián)合它的線程B,直到線程B執(zhí)行完畢后線程A再重新排隊(duì)等到CPU資源,稱為線程A聯(lián)合線程B
5.進(jìn)程
是進(jìn)程實(shí)體的運(yùn)行過程
系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單元
使多個(gè)程序可并發(fā)執(zhí)行 以提高系統(tǒng)的資源利用率和吞吐量