App下載

怎么定義Java線程的概念? 線程和進(jìn)程的區(qū)別?

猿友 2021-07-14 09:51:16 瀏覽數(shù) (1952)
反饋

當(dāng)我們在運(yùn)行一個應(yīng)用程序的時候,程序進(jìn)入內(nèi)存后就成了一個進(jìn)程,因此程序至少有一個進(jìn)程。但是為了提高程序的運(yùn)行速度,往往需要同時處理不同的任務(wù),這時候我們就需要多個線程來完成。本文將介紹Java線程的基本概念和使用方法,以及Java中線程和進(jìn)程的區(qū)別。

一、基本概念

1、什么是線程?

線程 thread? 是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實際運(yùn)作單位。一個進(jìn)程中可以并發(fā)不同的線程,每條線程可以并行執(zhí)行不同的任務(wù)。

2、并發(fā)與并行

并發(fā):指兩個或多個事件在同一時刻發(fā)生(同時發(fā)生)。

并行:指兩個或多個實踐在同一個時間段內(nèi)發(fā)生。

3、線程和進(jìn)程的區(qū)別。

進(jìn)程:是指一個內(nèi)存中運(yùn)行的應(yīng)用程序,每個進(jìn)程都有一個獨(dú)立的內(nèi)存空間,一個應(yīng)用程序可以同時運(yùn)行多個進(jìn)程;進(jìn)程也是程序的一次執(zhí)行過程,是系統(tǒng)運(yùn)行程序的基本單位;系統(tǒng)運(yùn)行一個程序即是一個進(jìn)程從創(chuàng)建、運(yùn)行到消亡的過程。

線程:進(jìn)程內(nèi)部的一個獨(dú)立執(zhí)行單元;一個進(jìn)行可以同時并發(fā)的運(yùn)行多個線程。簡單的理解,進(jìn)程相當(dāng)于一個單 CPU 操作系統(tǒng),而線程是這個系統(tǒng)中運(yùn)行的多個任務(wù)。

 

二、線程的使用

(1)定義子類繼承 ?Thread? 類

(2)子類中重寫 ?Thread? 類中的 ?run? 方法

(3)創(chuàng)建 ?Thread? 子類對象,也就是創(chuàng)建了線程對象

(4)調(diào)用線程對象 ?start ?方法,啟動線程,調(diào)用 ?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.啟動線程,并調(diào)用當(dāng)前線程的run()方法。
        mt.start();
    }
}

三、線程定義方法

微信截圖_20210714094936

四、線程的同步

Java對于多線程的安全問題提供了專業(yè)的解決方法:同步機(jī)制

圖片4

五、總結(jié)

通過本文的學(xué)習(xí),關(guān)于 Java 線程的基本概念和使用方法,以及線程和進(jìn)程的有了一個大概的了解。如果想要對線程、進(jìn)程等進(jìn)一步了解,請關(guān)注 w3cschool編程獅APP。


0 人點(diǎn)贊