線程thread與進程process:
進程Process:
包含多個線程。
占有獨立的內(nèi)存,進程與進程之間內(nèi)存獨立。
進程之間可以共享硬盤文件,競爭端口。
線程Thread:程序運行的入口、順序執(zhí)行序列和程序的出口
棧,存方法借口。
PC(Program counter)程序計數(shù)器,指向內(nèi)存中程序行數(shù)。
TLS (Thread LocalStorage):線程自己的存儲空間(Optional)
線程之間可以共享同一進程的內(nèi)存
內(nèi)存尋址:
存儲: 硬盤, 內(nèi)存,緩存,寄存器,(慢到快,便宜到貴)。
32位內(nèi)存:4G。 64位內(nèi)存:10^19 Bytes
64位JVM -> 可使用更大內(nèi)存, 從32位jvm遷移到64位JVM需重新編譯。
指針P
-> 邏輯內(nèi)存,進程獨立
----->物理內(nèi)存(有可能從虛擬內(nèi)存中取出,分頁取出)
->寄存器。
京東java工程師:
對的。線程是程序的多個順序的流動態(tài)執(zhí)行。
錯的。線程有自己的獨立的地址空間。
對的。線程不能夠獨立執(zhí)行,必須依存在應用程序中,由應用程序提供多個線程執(zhí)行控制
錯的。線程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。
線程數(shù) < cpu 并行運算。
線程數(shù) > CPU 并發(fā)運算。