前言
當(dāng)線程池的線程阻塞時(shí),線程池會(huì)創(chuàng)建額外的線程,而創(chuàng)建、銷毀和調(diào)度線程所需要相當(dāng)昂貴的內(nèi)存資源,另外,很多的開發(fā)人員看見自己程序的線程沒有做任何有用的事情時(shí)習(xí)慣創(chuàng)建更多的線程,為了構(gòu)建可伸縮、響應(yīng)靈敏的程序,我們在前面介紹了線程也瘋狂-----異步編程。
但是異步編程同樣也存在著很嚴(yán)重的問題,如果兩個(gè)不同的線程訪問相同的變量和數(shù)據(jù),按照我們異步函數(shù)的實(shí)現(xiàn)方式,不可能存在兩個(gè)線程同時(shí)訪問相同的數(shù)據(jù),這個(gè)時(shí)候我們就需要線程同步。多個(gè)線程同時(shí)訪問共享數(shù)據(jù)的時(shí),線程同步能防止數(shù)據(jù)損壞,之所以強(qiáng)調(diào)同時(shí)這個(gè)概念,因?yàn)榫€程同步本質(zhì)就是計(jì)時(shí)問題。
異步和同步是相對的,同步就是順序執(zhí)行,執(zhí)行完一個(gè)再執(zhí)行下一個(gè),需要等待、協(xié)調(diào)運(yùn)行。異步就是彼此獨(dú)立,在等待某事件的過程中繼續(xù)做自己的事,不需要等待這一事件完成后再工作。線程就是實(shí)現(xiàn)異步的一個(gè)方式。異步是讓調(diào)用方法的主線程不需要同步等待另一線程的完成,從而可以讓主線程干其它的事情。
基元用戶模式和內(nèi)核模式構(gòu)造
基礎(chǔ)概念
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(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模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 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)來看看(二) 2017-07-26