jmeter进程和线程的区别_一文搞懂进程和线程的区别
????????計算機系統是由硬件和軟件組成的,它們共同協作以運行應用程序。先來看下面這張一個典型的計算機系統的硬件組成圖
????????從上圖中看出一個系統由 CPU、ALU(算術邏輯單元)、PC(程序計數器)、總線(貫穿整個系統的一組電子管道)、IO設備、主存等組成。這些硬件的管理都是由操作系統來完成的。
進程
????????進程是操作系統對一個正在運行的程序的抽象。在一個系統上可以同時運行多個進程,而每個進程都好像在獨占地使用硬件。而并發運行,則是說一個進程的指令和另一個進程的指令是交錯執行的。在大多數系統中,需要運行的進程數是多于可以運行他們的CPU個數的。傳統的系統在一個時刻只能執行一個程序,而先進的多核處理器同時能夠執行多個程序。無論是在單核系統還是多核系統中,一個CPU看上去都像是在并發地執行多個進程,這個通過處理器在進程間切換來實現的。操作系統實現這種交錯執行的機制成為上下文切換。進程也是操作系統進行資源分配的最小單位。
????????操作系統保持跟蹤進程運行所需的所有狀態信息。這種狀態也就是上下文,它包括許多信息,例如PC和寄存器文件的當前值,以及主存內容。在任何一個時刻,單處理器系統都只能執行一個進程的代碼。當操作系統決定要把控制權從當前系統轉移到某個新進程時,就會進行上下文切換,即保存當前進程的上下文,恢復新進程的上線文,然后將控制權傳遞到新進程,新進程就會從上次停止的地方開始。
程序本身不是進程,它只是一個被調用的實體,就是存在磁盤上的內容,進程是一個活動的實體,他有程序計數器以指示下一個要執行的指令。
上圖展示了進程的上線文切換
上圖展示創建一個進程時所屬的資源
線程
????????進程間的切換和通信存在較大的開銷,為了能并行執行更多的任務,提升系統的效率,才引入了線程的概念。線程間的切換開銷比進程間的切換開銷小的多。線程是CPU調度的最小單位,它是進程的一部分,只能由進程創建。一個進程有用很多個線程,這些線程共享進程的資源和程序代碼。
????????盡管通常我們認為一個進程只有單一的控制流,但是在現代系統中,一個進程實際上可以由多個稱為線程的執行單元組成,每個線程都運行在進程的上線文中,并共享同樣的代碼和全局數據。由于網絡服務器對并行處理的需求,線程成為越來越重要的編程模型,因為多線程之間比多進程之間更容易共享數據,也因為線程一般來說都比進程更高效。當有多處理器可用的時候,多線程也是一種使程序可用更快運行的方法。
總結
????????進程和線程都是計算系統抽象的一個概念,了解他們之間的區別和運行機制,對編寫程序有很大的幫助,后面繼續介紹Java中的jvm對線程的創建和管理。 線程的出現也如操作系統一樣都是為了最大限度的合理分配管理和利用CPU的空閑資源。
總結
以上是生活随笔為你收集整理的jmeter进程和线程的区别_一文搞懂进程和线程的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (二叉树存储+递归遍历)Binary T
- 下一篇: 2021泗阳致远中学高考成绩查询,202