Java并发篇_进程线程
一個進程包括由操作系統分配的內存空間,包含一個或多個線程。一個線程不能獨立的存在,它必須是進程的一部分。一個進程一直運行,直到所有的非守護線程都結束運行后才能結束。
多線程能滿足程序員編寫高效率的程序來達到充分利用 CPU 的目的。
一、進程
1、什么是進程
進程(Process) 是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。 在當代面向線程設計的計算機結構中,進程是線程的容器。程序是指令、數據及其組織形式的描述,進程是程序的實體。
程序并不能單獨運行,只有將程序裝載到內存中,系統為它分配資源才能運行,而這種執行的程序就稱之為進程。程序和進程的區別就在于:程序是指令的集合,它是進程運行的靜態描述文本;進程是程序的一次執行活動,屬于動態概念。
2、進程的特點
- 進程是程序的一次執行過程。
- 進程是是正在運行程序的抽象。它代表運行的CPU,也稱進程是對CPU的抽象。
- 系統資源(如內存、文件)以進程為單位分配。
- 操作系統為每個進程分配了獨立的地址空間
- 操作系統通過“調度”把控制權交給進程。
二、線程
1、什么是線程
線程(thread) 是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的任務。
線程由線程ID,程序計數器(PC)[用于指向內存中的程序指令],寄存器集合[由于存放本地變量和臨時變量]和堆棧[用于存放方法指令和方法參數等]組成。
2、為什么引入線程
主要歸咎于兩點. 一個是由實現決定的,一個是由需求決定的.
3、進程與線程的區別
4、線程設計的3個難點
5、并發與并行
并發:一個時間段內有很多的線程或進程在執行,但何時間點上都只有一個在執行,多個線程或進程爭搶時間片輪流執行。
并行:一個時間段和時間點上都有多個線程或進程在執行。
總結
以上是生活随笔為你收集整理的Java并发篇_进程线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: innobackupex实现导出和导入单
- 下一篇: 列表生成式(List)