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