欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

*阿炮的Java筆記012號*-面試令人困擾的多線程!!!-創(chuàng)新互聯(lián)

老生常談…對于大佬們根本都不用看的博客!

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、文山州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為文山州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

對于像我這種菜雞還是得一步一步的來!如果有錯誤請大佬們指點指點!

并行和并發(fā)
  • 并行:兩個或兩個以上的事件在同一時刻同時發(fā)生。
  • 并發(fā):兩個或兩個以上的事件在同一時間段內(nèi)發(fā)生。

在操作系統(tǒng)中,并發(fā)是在一段時間內(nèi)宏觀上有多個程序同時運行,在是單CPU的系統(tǒng)上,每一時刻只能有一個程序在運行,但是這些程序是分時交替運行的,給人一種同時運行的錯覺。交替的時間非常非常短。而在多CPU系統(tǒng)中,這些程序可以分配到多個CPU上進行運行,實現(xiàn)了多任務(wù)并行運行。
所以多核CPU,核越多,并行處理的程序越多,能夠大大的提高電腦的運行效率。

單核CPU:只能并發(fā)
多核CPU:并發(fā)+并行

通俗理解:
并行:很多工作分配給很多工人一起執(zhí)行,然后在進行匯總;
并發(fā):一個工人要干很多工作,輪到哪個工作就執(zhí)行哪個工作;工人相當于資源,這些工作搶這個工人。

進程和線程
  • 進程:一個在內(nèi)存中運行的應(yīng)用程序,每個進程都有一個獨立的內(nèi)存空間;進程也是程序的一次執(zhí)行過程,是系統(tǒng)運行程序的基本單位,系統(tǒng)運行一個程序是一個進程從創(chuàng)建到運行再到死亡的過程。
  • 線程:線程是進程中的一個執(zhí)行單元,負責當前進程中的程序執(zhí)行,一個進程中可以有多個線程,但至少有一個線程。

注意(重點要考):進程是操作系統(tǒng)調(diào)度和分配資源的最小單位,線程是CPU調(diào)度的最小單位。不同的進程之間不共享內(nèi)存,進程之間的可以進行通信但成本很高。而不同的線程也有自己獨立的內(nèi)存空間,對于方法區(qū)、堆中的同一個對象的內(nèi)存,線程之間可以共享,但棧的局部表里永遠是獨立的。

了解線程調(diào)度
  • 分時:所有的線程輪流調(diào)用CPU,平均分配每個線程占用CPU的時間。
  • 搶占:優(yōu)先級高的先使用CPU,如果相同則隨機選擇。
線程的生命周期

在這里插入圖片描述
只要知道5中狀態(tài)就可以:新建,就緒,阻塞,運行,死亡。

線程的創(chuàng)建與使用(走進多線程)

JAVA通過調(diào)用Thread類來進行多線程的編寫,每個線程都要重寫run()方法來進行操作,run()方法也被稱為線程體。然后我們通過調(diào)用start()方法來啟動線程,切記并非直接調(diào)用run().

創(chuàng)建方式
  • 繼承Thread類
  • 實現(xiàn)Runnable接口
繼承Thread類
public class TestThread extends Thread {
    //重寫線程體
    @Override
    public void run() {
        for (int i = 0; i< 50; i++) {
            System.out.println(Thread.currentThread().getName() + ":run--" + i);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        //創(chuàng)建線程對象
        TestThread thread = new TestThread();
        //調(diào)用start啟動線程
        thread.start();
        //main的方法用來體現(xiàn)交叉運行的結(jié)果
        for (int i = 0; i< 50; i++) {
            System.out.println(Thread.currentThread().getName() + ":run--" + i);
        }
    }
}

我們需要通過用main方法進入運行程序,main方法就相當于程序的入口。
來展示一下運行的結(jié)果:
在這里插入圖片描述

實現(xiàn) Runnable 接口
public class TestRunnable implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i< 50; i++) {
            System.out.println(Thread.currentThread().getName() + ":run--" + i);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        //創(chuàng)建runnable的實現(xiàn)類的對象
        TestRunnable runnable = new TestRunnable();
        //然后放入Thread類中,需要幾個線程就創(chuàng)建幾個
        Thread thread1 = new Thread(runnable);
        Thread thread2 = new Thread(runnable);
        thread1.start();
        thread2.start();
    }
}

運行結(jié)果如下:
在這里插入圖片描述

兩種方法的區(qū)與好處

區(qū)別:

  • 繼承 Thread 類:需要運行代碼存放在 Thread 子類的 run() 方法中。
  • 實現(xiàn) Runnable 接口: 需要運行代碼存放在接口的子類的 run() 方法中。
    實現(xiàn) Runnable 接口的好處:
  • 避免了單繼承的局限性
  • 多個線程可以共享同一個接口實現(xiàn)類的對象
線程的優(yōu)先級

為什么會有優(yōu)先級?就相當于人為什么分為三六九等一樣!優(yōu)先級越高的線程就會獲得更多的執(zhí)行機會

我們可以通過調(diào)用Tread類的setPriority(int newPriority)方法來設(shè)置線程的優(yōu)先級,還可以通過getPriority()方法來獲取該線程的優(yōu)先級。

優(yōu)先級我們需要輸入范圍在 [1,10] 之間的整數(shù),通常會有三個推薦的優(yōu)先級常量:

public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;

注意:

  • 線程創(chuàng)建時繼承的是父線程的優(yōu)先級;
  • 低優(yōu)先級只是獲得調(diào)度的概率低,并非一定是在高優(yōu)先級線程之后才被調(diào)用;
插隊(join)和禮讓(yied)

現(xiàn)實生活中,我們在排隊的時候,就想插隊。所以我們可以通過join 方法,人為的讓等待的線程提前運行,關(guān)系戶就是厲害昂!

禮讓就是這個正在運行的程序,被咱看著不順眼讓他待會執(zhí)行,先讓優(yōu)先級高或相同的線程來執(zhí)行,我們就可以通過yied方法來執(zhí)行,如果隊列里沒有和它能力一樣或者比它強的,這個方法沒啥用!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:*阿炮的Java筆記012號*-面試令人困擾的多線程!!!-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://www.chinadenli.net/article0/dospio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google虛擬主機面包屑導(dǎo)航網(wǎng)站營銷響應(yīng)式網(wǎng)站手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司