Java多线程(1)--基本概念:程序、进程、线程
程序(program)是為完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜態的代碼,靜態對象。
進程(process)是程序的一次執行過程,或是正在運行的一個程序,是一個動態的過程:有它自身的產生、存在和消亡的過程。——生命周期,如:運行中的QQ,運行中的MP3播放器
程序是靜態的,進程是動態的。
進程作為資源分配的單位,系統在運行時會為每個進程分配不同的內存區域。
線程(thread),進程可進一步細化為線程,是一個程序內部的一條執行路徑。若一個進程同一時間并行執行多個線程,就是支持多線程的線程作為調度和執行的單位,每個線程擁有獨立的運行棧和程序計數器(pc),線程切換的開銷小。
一個進程中的多個線程共享相同的內存單元/內存地址空間,它們從同一堆中分配對象,可以訪問相同的變量和對象。這就使得線程間通信更簡便、高效。但多個線程操作共享的系統資源可能就會帶來安全的隱患
一個Java應用程序java.exe,其實至少有三個線程:main()主線程,gc()垃圾回收線程,異常處理線程。當然如果發生異常,會影響主線程。
并行:多個CPU同時執行多個任務。如:多個人同時做不同的事。
并發:一個CPU(采用時間片)同時執行多個任務。如:秒殺、多個人做同一件事。
多線程程序的優點:
①提高應用程序的響應。對圖形化界面更有意義,可增強用戶體驗
②提高計算機系統CPU的利用率
③改善程序結構。將既長又復雜的進程分為多個線程,獨立運行,利于理解和修改
何時需要多線程
程序需要同時執行兩個或多個任務。
程序需要實現一些需要等待的任務時,如用戶輸入、文件讀寫操作、網絡操作、搜索。
需要一些后臺運行的程序時。
總結
以上是生活随笔為你收集整理的Java多线程(1)--基本概念:程序、进程、线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux更改用户组chown(linu
- 下一篇: Java线程的调度及线程的优先级