前言
在Java中,線程是一個(gè)很關(guān)鍵的名詞,也是很高頻使用的一種資源。那么它的概念是什么呢,是如何定義的,用法又有哪些呢?為何說(shuō)Android里只有一個(gè)主線程呢,什么是工作線程呢。線程又存在并發(fā),并發(fā)機(jī)制的原理是什么。這些內(nèi)容有些了解,有些又不是很清楚,所以有必要通過(guò)一篇文章的梳理,弄清其中的來(lái)龍去脈,為了之后的開(kāi)發(fā)過(guò)程中提供更好的支持。
目錄
線程定義
Java線程生命周期
線程用法
Android中的線程
工作線程
使用AsyncTask
什么是并發(fā)
并發(fā)機(jī)制原理
并發(fā)具體怎么用
線程定義
說(shuō)到線程,就離不開(kāi)談到進(jìn)程了,比如在Android中,一個(gè)應(yīng)用程序基本有一個(gè)進(jìn)程,但是一個(gè)進(jìn)程可以有多個(gè)線程組成。在應(yīng)用程序中,線程和進(jìn)程是兩個(gè)基本執(zhí)行單元,都是可以處理比較復(fù)雜的操作,比如網(wǎng)絡(luò)請(qǐng)求、I/O
讀寫(xiě)等等,在Java中我們大部分操作的是線程(Thread
),當(dāng)然進(jìn)程也是很重要的。
進(jìn)程通常有獨(dú)立執(zhí)行環(huán)境,有完整的可設(shè)置為私有基本運(yùn)行資源,比如,每個(gè)進(jìn)程會(huì)有自己的內(nèi)存空間。而線程呢,去官網(wǎng)的查了下,原話如下:
Threads are sometimes called "lightweight processes". Both processes and threads provide an execution environment, but creating a new thread requires fewer resources than creating a new process.
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26