進(jìn)程和線程冷知識(shí)
請(qǐng)用微信掃一掃
分享
面試官:剛畢業(yè)是吧?
小白:是的。
面試官:問(wèn)你一個(gè)簡(jiǎn)單的問(wèn)題吧,進(jìn)程和線程的區(qū)別?
小白:進(jìn)程是正在運(yùn)行的程序,線程是進(jìn)程中的一個(gè)執(zhí)行單元。
面試官:(⊙o⊙)… 回答對(duì)了一點(diǎn)點(diǎn)。
進(jìn)程和線程知識(shí)是操作系統(tǒng)中的基本知識(shí),考察你對(duì)操作系統(tǒng)的認(rèn)識(shí)和程序運(yùn)行原理的理解。
先說(shuō)說(shuō)計(jì)算機(jī)運(yùn)行的基本知識(shí)。計(jì)算機(jī)是由一堆的硬件組成的,它的運(yùn)行離不開(kāi)計(jì)算機(jī)程序,很多的計(jì)算機(jī)程序組成了操作系統(tǒng),比如大家熟知的桌面操作系統(tǒng)Windows,Mac OS、Unix和Linux,還有大家熟知的移動(dòng)操作系統(tǒng)ios、Android、Windows Phone。這些操作系統(tǒng)驅(qū)動(dòng)了計(jì)算機(jī)硬件的運(yùn)行,應(yīng)用程序開(kāi)發(fā)者開(kāi)發(fā)各個(gè)應(yīng)用程序比如常用的QQ,微信什么的,這些應(yīng)用程序都是運(yùn)行在操作系統(tǒng)之上,不直接和硬件打交道,應(yīng)用程序都是調(diào)用操作系統(tǒng)提供的開(kāi)發(fā)接口來(lái)與硬件打交道。由于操作系統(tǒng)不同,提供的接口也不同,所以就出現(xiàn)了各種版本的應(yīng)用程序,比如QQ有Windows版本,iso版本和Android版本,這些不同版本的QQ雖然大體功能相同,但是開(kāi)發(fā)實(shí)現(xiàn)起來(lái)是不一樣的,除了調(diào)用系統(tǒng)接口不一樣外還有開(kāi)發(fā)語(yǔ)言也是不一樣的。但是不管什么操作系統(tǒng),也不管你用哪種語(yǔ)言實(shí)現(xiàn),最后的QQ程序都是作為一個(gè)應(yīng)用程序運(yùn)行在操作系統(tǒng)之上。
下面說(shuō)說(shuō)進(jìn)程,進(jìn)程是為了很好的描述運(yùn)行在計(jì)算機(jī)上的程序而抽象出來(lái)的概念,可以看做是計(jì)算機(jī)進(jìn)行資源分配的最小單元,一個(gè)進(jìn)程的運(yùn)行需要占用這計(jì)算機(jī)硬件的CPU,內(nèi)存等資源,一般來(lái)說(shuō)一個(gè)應(yīng)用程序可以看做是一個(gè)進(jìn)程,應(yīng)用程序啟動(dòng)時(shí)會(huì)新建一個(gè)進(jìn)程,向操作系統(tǒng)申請(qǐng)硬件資源,應(yīng)用程序關(guān)閉,這個(gè)進(jìn)程也就結(jié)束,釋放掉對(duì)應(yīng)的硬件資源。
線程是進(jìn)程內(nèi)一個(gè)相對(duì)獨(dú)立的、可調(diào)度的執(zhí)行單元,是系統(tǒng)獨(dú)立調(diào)度和分派CPU的基本單位。進(jìn)程相當(dāng)于一個(gè)車間,線程就相當(dāng)于一個(gè)車間工人,很多個(gè)車間工人共同完成這個(gè)車間的工作。
推出答疑解惑系列,如果有編程疑惑可按照如下格式:
答疑解惑+個(gè)人昵稱+具體問(wèn)題