當我們在運行一個應用程序的時候,程序進入內存后就成了一個進程,因此程序至少有一個進程。但是為了提高程序的運行速度,往往需要同時處理不同的任務,這時候我們就需要多個線程來完成。本文將介紹Java線程的基本概念和使用方法,以及Java中線程和進程的區(qū)別。
一、基本概念
1、什么是線程?
線程 thread
? 是操作系統(tǒng)能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一個進程中可以并發(fā)不同的線程,每條線程可以并行執(zhí)行不同的任務。
2、并發(fā)與并行
并發(fā):指兩個或多個事件在同一時刻發(fā)生(同時發(fā)生)。
并行:指兩個或多個實踐在同一個時間段內發(fā)生。
3、線程和進程的區(qū)別。
進程:是指一個內存中運行的應用程序,每個進程都有一個獨立的內存空間,一個應用程序可以同時運行多個進程;進程也是程序的一次執(zhí)行過程,是系統(tǒng)運行程序的基本單位;系統(tǒng)運行一個程序即是一個進程從創(chuàng)建、運行到消亡的過程。
線程:進程內部的一個獨立執(zhí)行單元;一個進行可以同時并發(fā)的運行多個線程。簡單的理解,進程相當于一個單 CPU 操作系統(tǒng),而線程是這個系統(tǒng)中運行的多個任務。
二、線程的使用
(1)定義子類繼承 ?Thread
? 類
(2)子類中重寫 ?Thread
? 類中的 ?run
? 方法
(3)創(chuàng)建 ?Thread
? 子類對象,也就是創(chuàng)建了線程對象
(4)調用線程對象 ?start
?方法,啟動線程,調用 ?run
? 方法
class MyThread extends Thread{
public MyThread(){
super();
}
public void run(){
for(int i = o;i<100;i++){
System.out.print1n("子線程: "+i);
}
}
}
public class TestThread {
public static void main(String[] args) {
//1.創(chuàng)建線程
MyThread mt = new MyThread();
//2.啟動線程,并調用當前線程的run()方法。
mt.start();
}
}
三、線程定義方法
四、線程的同步
Java對于多線程的安全問題提供了專業(yè)的解決方法:同步機制
五、總結
通過本文的學習,關于 Java 線程的基本概念和使用方法,以及線程和進程的有了一個大概的了解。如果想要對線程、進程等進一步了解,請關注 w3cschool 或 編程獅APP。