線程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í)行婴削,必須依存在應(yīng)用程序中廊镜,由應(yīng)用程序提供多個線程執(zhí)行控制
錯的。線程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位唉俗。
線程數(shù) < cpu 并行運算嗤朴。
線程數(shù) > CPU 并發(fā)運算。