Java基础:多线程
生活随笔
收集整理的這篇文章主要介紹了
Java基础:多线程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本概念
程序&線程&進程
- 程序是一個段可以提供業務功能的代碼,它可以包含1個或多個進程。程序在OS上運行時表現為進程對各種資源(CPU,內存,Disk..)的消耗和處理。
- 進程是OS進行資源調度的最小單元:進程獨立占用CPU,任何時候,只有一個進程能占用CPU,其他進程都在等待中;進程也有獨立的內存,崩掉的時候不會對OS中其他的進程造成影響,但是進程之間切換的代價較高;OS頻繁切換進程會對CPU,內存造成較大壓力。
- 線程是CPU調用的最小單元,基本不擁有其他系統資源(除了一些存儲變量的堆棧..); 不同線程之間共享同一個進程的內存,通過鎖機制來實現對同一段內存變量的存取,一旦某個線程死掉,整個進程都會因為內存鎖死掉。
以工廠模擬OS工作原理為例來說明
OS對應工廠,該工廠有很多車間(進程),每個車間有獨立的設備(內存)和多個工人(線程)。車間通過供電設備進行開工,但一個供電設備只有一個接頭(CPU),不同車間之間輪詢著開工,但是一個車間開工時多個工人可以并行著工作。同個車間的工人并行工作時可能用到相同的設備,需要用同一個設備時要排隊(鎖機制),一個設備被釋放以后才能被下一個工人使用。
什么情況下用多線程?
同時進行并且又要共享某些變量的并發操作,只能用線程,不能用進程。比如異步調用就必須用多線程,性能測試模擬多個用戶同時發請求時也必須用多線程(否則只能一個用戶發完請求另一個用戶再發), 對性能要求高又可以將任務進行拆分的場合下建議使用多線程,但是一定要注意維護代碼的健壯性。
?
轉載于:https://www.cnblogs.com/vivian-test/p/5869884.html
總結
以上是生活随笔為你收集整理的Java基础:多线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开学了
- 下一篇: Java之Object类与instanc