一、異步阻塞
同步異步關(guān)注的是: 消息通信機制
阻塞非阻塞關(guān)注的是: 程序在等待調(diào)用結(jié)果時的狀態(tài)
燒水例子:
- 同步阻塞: 我用普通水壺?zé)?坐等水開
- 異步阻塞: 我用響水壺?zé)?坐等水開,但水開時水壺有提醒
- 同步非阻塞: 我用普通水壺?zé)?然后去干其他事,時不時看看水有沒有開
- 異步非阻塞: 我用響水壺?zé)?然后去干其他事,水開時水壺有提醒
二、進程線程
1相满、進程: cpu資源分配的最小單位,計算機中已運行程序的實體,是線程的容器,單個CPU一次只能運行一個進程
2竞滓、線程: cpu獨立調(diào)度的最小單位
3珊豹、工廠例子
- 工廠是CPU,承擔(dān)所有計算任務(wù)
- 進程是車間,代表cpu所能處理的單個任務(wù),單個CPU一次只能運行一個進程
- 線程是車間工人,一個進程包括多個線程,多個線程協(xié)同完成一個任務(wù)
- 有些進程的內(nèi)存空間是共享的,每個線程都能使用共享內(nèi)存
- 互斥鎖,防止多個線程同時讀寫某一內(nèi)存區(qū)域
- 信號量,保證多個線程不會互相沖突
4、軟件例子: 開了QQ,開了一個進程。QQ里傳輸文字開了個線程,彈出對話框開了個線程样屠。
三、編譯器
1缺脉、編譯器概念: 是一種計算機程序,將某種編程語言寫成的源代碼(原始語言),轉(zhuǎn)換成另一種編程語言(目標(biāo)語言)
2痪欲、工作流程
源代碼 -> 預(yù)處理器 -> 編譯器 -> 匯編程序 -> 目標(biāo)代碼 -> 鏈接器 -> 可執(zhí)行文件</br>
source code->preprocessor->compiler->assembler->object code->linker->executables</br>
3、32位CPU和64位CPU
指令集合,操作數(shù)位數(shù),寄存器名稱,寄存器個數(shù)都不同</br>
但intel的x86-64cpu和amd的amd64能兼容32軟件環(huán)境
4攻礼、并發(fā)业踢,并行,分布式計算
- 并發(fā)計算: 將一個計算任務(wù),分區(qū)成幾個小部分,讓它們同時被計算,之后再匯整計算結(jié)果,以完成任務(wù)礁扮。是一種程序計算的形式知举。</br>
計算單元間的通信:(1)共享內(nèi)存通信:java,c#; (2)消息傳遞通信: - 并行計算: 并發(fā)計算的程序在機器平臺上同時被運行的狀況,因此是機器運算的形式
- 分布式計算: 是并行計算的特例,采用計算機網(wǎng)絡(luò)來進行同步。把工程數(shù)據(jù)分區(qū)成小塊,由多臺計算機分別計算,將結(jié)果統(tǒng)一合并得出數(shù)據(jù)結(jié)論太伊。大型多人在線游戲,對等網(wǎng)絡(luò),面向服務(wù)的體系架構(gòu)雇锡。