線程與進(jìn)程
Java線程和進(jìn)程深入?yún)^(qū)別1,、進(jìn)程是什么 一般是對(duì)于系統(tǒng)來(lái)講,,進(jìn)程(process)是具有一定獨(dú)立功能的程序,操作系統(tǒng)利用進(jìn)程把工作劃分為一些功能單元,。 進(jìn)程是進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位,。它還擁有一個(gè)私有的虛擬地址空間,該空間僅能被它所包含的線程訪問(wèn),。 一個(gè)應(yīng)用程序(application)是由一個(gè)或多個(gè)相互協(xié)作的進(jìn)程組成的,。例如,Visual Studio開(kāi)發(fā)環(huán)境就是利用一個(gè)進(jìn)程編輯源文件,,并利用另一個(gè)進(jìn)程完成編譯工作的應(yīng)用程序,。 2、線程是什么 線程(thread)是進(jìn)程中所包含的一個(gè)或多個(gè)執(zhí)行單元,。它只能歸屬于一個(gè)進(jìn)程并且只能訪問(wèn)該進(jìn)程所擁有的資源,。 它進(jìn)程中執(zhí)行運(yùn)算的最小單位,是進(jìn)程中的一個(gè)實(shí)體,,是被進(jìn)程獨(dú)立調(diào)度和分派的基本單位,。 線程自己不擁有系統(tǒng)資源,,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(計(jì)數(shù)器、寄存器和棧),,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源,。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行,。 當(dāng)操作系統(tǒng)創(chuàng)建一個(gè)進(jìn)程后,,該進(jìn)程會(huì)自動(dòng)申請(qǐng)一個(gè)名為主線程(首要線程)的線程。主線程將執(zhí)行運(yùn)行時(shí)宿主,,而運(yùn)行時(shí)宿主會(huì)負(fù)責(zé)載入CLR(公共語(yǔ)言運(yùn)行庫(kù)),。 3、線程和進(jìn)程有什么關(guān)系以及區(qū)別,? 首先,,進(jìn)程和進(jìn)程如同列車和車廂,沒(méi)有可比性,,但是他們有一定的相關(guān)性:
如果非要比較進(jìn)程與線程的區(qū)別,可以從以下幾個(gè)方面來(lái)看:
|
|
來(lái)自: 昵稱16619343 > 《辦公技能》