内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

*阿炮的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ā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為文山州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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

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

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

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

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

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

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

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

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

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

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

創(chuàng)建方式
  • 繼承Thread類
  • 實(shí)現(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)交叉運(yùn)行的結(jié)果
        for (int i = 0; i< 50; i++) {
            System.out.println(Thread.currentThread().getName() + ":run--" + i);
        }
    }
}

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

實(shí)現(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的實(shí)現(xiàn)類的對象
        TestRunnable runnable = new TestRunnable();
        //然后放入Thread類中,需要幾個線程就創(chuàng)建幾個
        Thread thread1 = new Thread(runnable);
        Thread thread2 = new Thread(runnable);
        thread1.start();
        thread2.start();
    }
}

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

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

區(qū)別:

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

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

我們可以通過調(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)實(shí)生活中,我們在排隊的時候,就想插隊。所以我們可以通過join 方法,人為的讓等待的線程提前運(yùn)行,關(guān)系戶就是厲害昂!

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

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

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

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

廣告

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

成都app開發(fā)公司
尼木县| 滦南县| 聊城市| 冷水江市| 鄂尔多斯市| 浦县| 新乡县| 出国| 福安市| 昆明市| 淮滨县| 岗巴县| 寿阳县| 噶尔县| 平定县| 岫岩| 萝北县| 宣化县| 霍城县| 怀仁县| 香港| 安泽县| 襄城县| 穆棱市| 沐川县| 安顺市| 长沙县| 广昌县| 延庆县| 荥阳市| 栖霞市| 普陀区| 兰州市| 莱州市| 措美县| 汪清县| 无棣县| 南乐县| 岳池县| 隆安县| 阿拉善盟|