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

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

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

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

對(duì)于像我這種菜雞還是得一步一步的來(lái)!如果有錯(cuò)誤請(qǐng)大佬們指點(diǎn)指點(diǎn)!

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

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

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

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

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

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

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

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

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

JAVA通過(guò)調(diào)用Thread類來(lái)進(jìn)行多線程的編寫,每個(gè)線程都要重寫run()方法來(lái)進(jìn)行操作,run()方法也被稱為線程體。然后我們通過(guò)調(diào)用start()方法來(lái)啟動(dòng)線程,切記并非直接調(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)建線程對(duì)象
        TestThread thread = new TestThread();
        //調(diào)用start啟動(dòng)線程
        thread.start();
        //main的方法用來(lái)體現(xiàn)交叉運(yùn)行的結(jié)果
        for (int i = 0; i< 50; i++) {
            System.out.println(Thread.currentThread().getName() + ":run--" + i);
        }
    }
}

我們需要通過(guò)用main方法進(jìn)入運(yùn)行程序,main方法就相當(dāng)于程序的入口。
來(lái)展示一下運(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)類的對(duì)象
        TestRunnable runnable = new TestRunnable();
        //然后放入Thread類中,需要幾個(gè)線程就創(chuàng)建幾個(gè)
        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 接口的好處:
  • 避免了單繼承的局限性
  • 多個(gè)線程可以共享同一個(gè)接口實(shí)現(xiàn)類的對(duì)象
線程的優(yōu)先級(jí)

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

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

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

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

注意:

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

現(xiàn)實(shí)生活中,我們?cè)谂抨?duì)的時(shí)候,就想插隊(duì)。所以我們可以通過(guò)join 方法,人為的讓等待的線程提前運(yùn)行,關(guān)系戶就是厲害昂!

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

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

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

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

廣告

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

成都app開發(fā)公司