Java多線程概念及優缺點,多線程的地位|樂字節


大家好,樂字節小樂有來咯,上次說完了Java網絡編程探究|樂字節,這次我們來看看線程相關的吧。

Java線程主要講述的內容有:

1、線程概念

多線程,說白了就是多條執行路徑,原來是一條路徑,就主路徑(main),現在是多條路徑。就相當於高速路,原來是一條路,因為車多了,為提高使用效率,充分使用這條道路,中間加了個柵欄, 變成了多條車道。

注意: 所有的車共享這條套路。

原來的執行程序為一條路徑,現在加入多線程則存在多條執行路徑。

1)、一條路徑

方法間的調用為一條路徑,如:

public class OneRoute { public static void main(String[] args) { System.out.print("只有"); int result =a(); System.out.print("-->"+result); } public static int a(){ System.out.print("main"); return b()*100; } public static int b(){ System.out.print("一條路徑"); return 1; } }

2)、兩條路徑

開辟新的線程,為兩條執行路徑。

public class ThreadRoute { public static void main(String[] args) { System.out.print("多條路徑"); new Route().start(); System.out.print("main-->"); } } class Route extends Thread{ public void run() { a(); } public int a(){ System.out.print("thread"); return b()*100; } public int b(){ System.out.print("一條路徑"); return 1; } }

2、程序、進程與多線程

程序是指令的集合,代碼的集合;而進程是動態的概念,當程序在執行時,系統分配進

程;多線程是在同一進程下,充分利用資源 ,多條執行路徑,共享資源 (cpu data code)。

注意:

很多多線程是模擬出來的,真正的多線程是指有多個 cpu,即多核,如服務器。如果是模擬出來的多線程,即一個 cpu 的情況下,在同一個時間點,cpu 只能執行一個代碼, 因為切換的很快,所以就有同時執行的錯覺。

 

3、多線程優缺點

1)、優點

資源利用率更好;程序設計在某些情況下更簡單;程序響應更快

2)、缺點

a)設計更復雜雖然有一些多線程應用程序比單線程的應用程序要簡單,但其他的一般

都更復雜。在多線程訪問共享數據的時候,這部分代碼需要特別的注意。線程之間的交互往

往非常復雜。不正確的線程同步產 生的錯誤非常難以被發現,並且重現以修復。

b)上下文切換的開銷 當 CPU 從執行一個線程切換到執行另外一個線程的時候,它需要

先存儲當前線程的本地的數據,程序 指針等,然后載入另一個線程的本地數據,程序指針

等,最后才開始執行。這種切換稱為“上下文切 換”(“context switch”)。CPU 會在一

個上下文中執行一個線程,然后切換到另外一個上下文中執 行另外一個線程。上下文切換

並不廉價。如果沒有必要,應該減少上下文切換的發生。

 

4、多線程地位

線程在 java 中的地位非常重要,但是比較難以理解,慶幸的是在實際工作中,直接編

寫線程的代碼不多;線程在手寫服務器用的很多,當然現在的服務器都是其他公司寫好的,

直接拿來用即可,如果真的想把多線程學好,需要掌握很多知識,如操作系統原理、並發機

制等。 對於目前的大家來說,線程掌握以下即可:

  • 創建線程的方式
  • sleep
  • 停止線程
  • Thread.currentThread
  • 簡單的 synchronized

關於Java多線程的概念和優缺點就介紹到這,下一篇將會講講如何創建多線程。謝謝大家,請關注樂字節!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM