多线程应用场景
線程與進(jìn)程區(qū)別
每個(gè)正在系統(tǒng)上運(yùn)行的程序都是一個(gè)進(jìn)程。每個(gè)進(jìn)程包含一到多個(gè)線程。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨(dú)立執(zhí)行。也可以把它理解為代碼運(yùn)行的上下文。所以線程基本上是輕量級(jí)的進(jìn)程,它負(fù)責(zé)在單個(gè)程序里執(zhí)行多任務(wù)。通常由操作系統(tǒng)負(fù)責(zé)多個(gè)線程的調(diào)度和執(zhí)行。
使用線程可以把占據(jù)時(shí)間長(zhǎng)的程序中的任務(wù)放到后臺(tái)去處理,程序的運(yùn)行速度可能加快,在一些等待的任務(wù)實(shí)現(xiàn)上如用戶(hù)輸入、文件讀寫(xiě)和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下可以釋放一些珍貴的資源如內(nèi)存占用等等。
如果有大量的線程,會(huì)影響性能,因?yàn)椴僮飨到y(tǒng)需要在它們之間切換,更多的線程需要更多的內(nèi)存空間,線程的中止需要考慮其對(duì)程序運(yùn)行的影響。通常塊模型數(shù)據(jù)是在多個(gè)線程間共享的,需要防止線程死鎖情況的發(fā)生。
總結(jié):進(jìn)程是所有線程的集合,每一個(gè)線程是進(jìn)程中的一條執(zhí)行路徑。
為什么要使用多線程?
多線程應(yīng)用場(chǎng)景?
答:主要能體現(xiàn)到多線程提高程序效率。
舉例: 迅雷多線程下載、數(shù)據(jù)庫(kù)連接池、分批發(fā)送短信等。
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
- 上一篇: 非对称加密整个过程
- 下一篇: 继承thread类创建线程