线程概述
線程概述
線程相關(guān)概念
進(jìn)程
進(jìn)程(Process)是計算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運行活動,是操作系統(tǒng)進(jìn)行資源分配與調(diào)度的基本單位.
? ? ? ? ? ? ? ? ? ? ? ? ? 可以把進(jìn)程簡單的理解為正在操作系統(tǒng)中運行的一個程序.
?
線程
線程(thread)是進(jìn)程的一個執(zhí)行單元.
一個線程就是進(jìn)程中一個單一順序的控制流, 進(jìn)程的一個執(zhí)行分支
進(jìn)程是線程的容器,一個進(jìn)程至少有一個線程.一個進(jìn)程中也可以有多個線程.
在操作系統(tǒng)中是以進(jìn)程為單位分配資源,如虛擬存儲空間,文件描述符等. 每個線程都有各自的線程棧,自己的寄存器環(huán)境,自己的線程本地存儲.
主線程與子線程
JVM 啟動時會創(chuàng)建一個主線程,該主線程負(fù)責(zé)執(zhí)行 main 方法 . 主線程就是運行 main 方法的線程
Java 中的線程不孤立的,線程之間存在一些聯(lián)系. 如果在 A 線程中創(chuàng)建了 B 線程, 稱 B 線程為 A 線程的子線程, 相應(yīng)的 A 線程就是 B 線程的父線程
并發(fā)可以提高以事物的處理效率, 即一段時間內(nèi)可以處理或者完成更多的事情.
并行是一種更為嚴(yán)格,理想的并發(fā)
從硬件角度來說, 如果單核 CPU,一個處理器一次只能執(zhí)行一個線程的情況下,處理器可以使用時間片輪轉(zhuǎn)技術(shù) ,可以讓 CPU 快速的在各個線程之間進(jìn)行切換,
對于用戶來說,感覺是三個線程在同時執(zhí)行.
如果是多核心 CPU,可以為不同的線程分配不同的 CPU 內(nèi)核.
總結(jié)
- 上一篇: Java操作Redis服务
- 下一篇: 线程的创建与启动——Thread 类有两