操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    在使用Java實(shí)際編程中,多線程可以說是無所不在,凡是需要并發(fā)執(zhí)行的都可以用到它,一個(gè)應(yīng)用程序中不用多線程將會(huì)是很糟糕的事情,所以 掌握線程以及它的控制操作是非常重要的 。

    通過本篇文章今天帶大家一文掌握線程控制操作,感謝您的觀看。

    目錄

    :pencil2:

    :pencil2:

    一、線程的基本概念

    1.并行和并發(fā)

    并行:多個(gè)CPU核心同時(shí)工作,處理不同的任務(wù)。

    并發(fā):多個(gè)任務(wù)交替使用 CPU 核心工作,以提高 CPU 利用率。

    2.進(jìn)程和線程

    進(jìn)程:程序的第一次執(zhí)行。由操作系統(tǒng)創(chuàng)建并分配資源,執(zhí)行一個(gè)單獨(dú)的任務(wù)。

    進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立單位,每個(gè)進(jìn)程都有自己的內(nèi)存空間和系統(tǒng)資源。進(jìn)程內(nèi)所有線程共享堆存儲(chǔ)空間,保存程序中定義的對(duì)象和常量池。

    Windows系統(tǒng)中,每個(gè)運(yùn)行的 Java 程序都是一個(gè)獨(dú)立的進(jìn)程。

    線程:進(jìn)程內(nèi)的執(zhí)行單元,不分配單獨(dú)的資源,執(zhí)行一個(gè)單獨(dú)的子任務(wù)。

    線程是進(jìn)程內(nèi)調(diào)度和分派的基本單位,共享進(jìn)程資源。每個(gè)線程有自己的獨(dú)立的棧存儲(chǔ)空間,保存線程執(zhí)行的方法以及基本類型的數(shù)據(jù)。

    運(yùn)行的 Java 程序內(nèi)包含至少一個(gè)主線程 main ,用戶可以在 Java 程序中自定義并調(diào)用多個(gè)線程。 JVM 垃圾回收線程也是一個(gè)獨(dú)立的線程。

    二、線程的運(yùn)行狀態(tài)

    線程除創(chuàng)建狀態(tài) New 和結(jié)束狀態(tài) Terminate 外,主要有以下幾種運(yùn)行狀態(tài):

    ①運(yùn)行(Running) :CPU 正在執(zhí)行線程。

    ②就緒(Runnable) :線程一切就緒,等待 CPU 執(zhí)行。

    運(yùn)行/就緒狀態(tài) 統(tǒng)稱為可運(yùn)行狀態(tài) Runnable。 Java 程序中,線程在 運(yùn)行/就緒狀態(tài) 之間的切換由 JVM 自動(dòng)調(diào)度,開發(fā)者無法獲知。線程之間的調(diào)度采用分優(yōu)先級(jí)多隊(duì)列時(shí)間的輪轉(zhuǎn)算法。進(jìn)程在執(zhí)行完 CPU 時(shí)間片切換到就緒狀態(tài)之前會(huì)先保存自己的狀態(tài),下次進(jìn)入運(yùn)行狀態(tài)時(shí)再重新加載。

    ③阻塞(Blocked) :線程因缺少其他資源,比如請(qǐng)求資源被上鎖而暫停執(zhí)行。在獲得資源后進(jìn)入就緒狀態(tài)。

    ④等待(Waitting) :線程接受了等待指令,釋放資源暫停執(zhí)行。在超時(shí)/接受喚醒指令后進(jìn)入就緒狀態(tài)。

    三、線程操作實(shí)踐

    Runnable 接口內(nèi)唯一聲明了 run 方法,由 Thread 類實(shí)現(xiàn)。開發(fā)者在 run 方法中定義運(yùn)行時(shí)線程將要執(zhí)行的功能,線程開啟后由Java虛擬機(jī)自動(dòng)調(diào)用并執(zhí)行。如果開發(fā)者主動(dòng)調(diào)用 run 方法,則只會(huì)當(dāng)作普通方法來執(zhí)行。

    1.線程兩種定義方法

    ①繼承 Thread 類,重寫 run 方法。

    public class MyThread extends Thread {
       @Override
       public void run() {
           System.out.println(Thread.currentThread().getName());
       }
    }

    ②實(shí)現(xiàn) Runnable 接口,實(shí)現(xiàn) run 方法。推薦使用,避免了單繼承的局限性。

    public class MyThread implements Runnable {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName());
        }
    }

    2.啟動(dòng)線程

    Thread 類定義了 start 方法。調(diào)用 start 方法后,系統(tǒng)會(huì)開啟一個(gè)新線程進(jìn)入就緒狀態(tài):由 JVM 會(huì)自動(dòng)對(duì)線程進(jìn)行調(diào)度,在運(yùn)行時(shí)調(diào)用并執(zhí)行線程的 run 方法。一個(gè)線程只能啟動(dòng)一次。

    ①如果自定義線程類繼承 Thread 類,直接啟動(dòng)。

    public class Main {
       public static void main(String[] args) {
           MyThread t1=new MyThread();
           MyThread t2=new MyThread("ThreadName");
           t1.start();
           t2.start();
       }
    }

    ②如果自定義線程類實(shí)現(xiàn) Runnable 接口,則需要借助 Thread 類啟動(dòng)線程。

    public class Main {
       public static void main(String[] args) {
           MyThread mythread=new MyThread();
           Thread t1=new Thread(mythread);                   // 由系統(tǒng)指定默認(rèn)線程名 Thread-X
           Thread t2=new Thread(mythread, "ThreadName");     // 開發(fā)者自定義線程名 
           t1.start();
           t2.start();
       }
    }

    3.同時(shí)定義和啟動(dòng)線程

    通過匿名內(nèi)部類方式,我們可以實(shí)現(xiàn)同時(shí)定義和啟動(dòng)線程的簡(jiǎn)潔寫法。

    public class Main {
        public static void main(String[] args) {
            Thread thread=new Thread(new Runnable(){
                public void run(){
                    System.out.println(Thread.currentThread().getName());
                }
            }).start();
        }
    }
    
    class Test {
       public void method() {
           System.out.println(Thread.currentThread().getName());
       }
    }

    4.線程彈出與暫停

    Thread 類定義了 yield 方法。當(dāng)前線程執(zhí)行到 Thread.yield() 方法,會(huì)停止運(yùn)行進(jìn)入就緒狀態(tài)。當(dāng)線程切換到就緒狀態(tài)后,什么時(shí)候被 JVM 調(diào)度回運(yùn)行狀態(tài)開發(fā)者無法控制。

    public class ThreadDemo {
        public static void main(String[] args) {
           MyThread mythread=new MyThread();
           Thread t1=new Thread(mythread);              
           Thread t2=new Thread(mythread);    
           t1.start();
           t2.start();
        }
    
        static class MyThread implements Runnable {
            @Override
            public void run() {
                int count=0;
                for (int i=0; i < 10000; i++) {
                    Thread.yield();                    // 切換到就緒狀態(tài)
                    count++;
                    System.out.println(count);
                }         
            }
        }
    }

    Thread 類定義了 sleep 方法。當(dāng)前線程執(zhí)行到 Thread.sleep(1000) 方法,會(huì)停止運(yùn)行進(jìn)入阻塞狀態(tài),但仍會(huì)保持對(duì)象鎖,其他線程不可訪問其資源。直到超時(shí)后才進(jìn)入就緒狀態(tài)。調(diào)用 sleep 方法需要捕獲或拋出 InterruptException 異常。

    public class ThreadDemo {
        public static void main(String[] args) {
           MyThread mythread=new MyThread();
           Thread t1=new Thread(mythread);              
           Thread t2=new Thread(mythread);    
           t1.start();
           t2.start();
        }
    
        static class MyThread implements Runnable {
            @Override
            public void run() {
                int count=0;
                for (int i=0; i < 10000; i++) {
                    try{
                        Thread.sleep(1000);             // 當(dāng)前線程暫停 1s
                    } catch(InterruptException e){
                        e.printStackTrace();
                    }
    
                    count++;
                    System.out.println(count);
                }         
            }
        }
    
    }

    5.線程等待與喚醒

    ①線程等待

    當(dāng)前線程執(zhí)行 obj.wait() 方法,線程會(huì)停止運(yùn)行并釋放對(duì)象鎖 obj,其他線程可以訪問其資源。同時(shí)線程進(jìn)入 obj 對(duì)象的等待池,直到被 notify 方法喚醒進(jìn)入就緒狀態(tài)。調(diào)用 wait 方法需要捕獲或拋出 InterruptException 異常。

    wait 方法允許計(jì)時(shí)等待。當(dāng)前線程執(zhí)行 obj.wait(1000) 方法,計(jì)時(shí)結(jié)束后線程會(huì)被自動(dòng)喚醒進(jìn)入就緒狀態(tài)。

    ②線程喚醒

    當(dāng)前線程執(zhí)行 obj.notify() 方法,會(huì)隨機(jī)從 obj 對(duì)象等待池中選擇一個(gè)線程喚醒,使其進(jìn)入就緒狀態(tài)。但是 notify 方法不會(huì)釋放當(dāng)前進(jìn)程的對(duì)象鎖,如果該線程持有 obj 對(duì)象的鎖,當(dāng)前線程釋放鎖后被喚醒的其他線程才能被執(zhí)行。如果想被喚醒線程先執(zhí)行,notify 方法后添加 wait 方法釋放鎖。

    當(dāng)前線程執(zhí)行 obj.notifyall() 方法,會(huì)將所有 obj 對(duì)象等待池中所有線程喚醒。

    public class ThreadDemo {
        public static void main(String[] args) {
            MyThread t=new MyThread("t");
            synchronized(t) {                         // 對(duì) t 設(shè)置對(duì)象鎖
                try {
                    t.start();
                    System.out.println("1");
                    t.wait();                         // 當(dāng)前線程釋放 t 鎖,進(jìn)入 t 對(duì)象等待池
                    System.out.println("4");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        static class MyThread extends Thread {
            @Override
            public void run() {
                synchronized (this) {                 // 對(duì) t 設(shè)置對(duì)象鎖        
                    Thread.sleep(1000);
                    System.out.println("2");
                    this.notify();                    // 隨機(jī)喚醒一個(gè) t 對(duì)象等待池中的線程
                    System.out.println("3");
                }
            }
        }
    }

    6.線程中斷

    調(diào)用 t.stop() 方法可以強(qiáng)制終止線程 t 運(yùn)行,但強(qiáng)制中斷線程可能會(huì)造成意想不到的問題,已不推薦使用。

    目前主要采用設(shè)置線程中斷標(biāo)志的方式,向線程發(fā)送中止信號(hào)。由線程自行終止運(yùn)行:

    t.interrupt()
    t.isInterrupted()
    t.interrupted()
    
    public class ThreadDemo {
        public static void main(String[] args) {
           MyThread mythread=new MyThread();
           Thread t=new Thread(mythread);              
           t.start();
           try {
                Thread.sleep(500);
            } catch (InterruptedException e) {}
           t.interrupt();                            // 設(shè)置中斷標(biāo)志為 true
        }
    
        static class MyThread implements Runnable {
            @Override
            public void run() {
                while (true) {
                    System.out.print("hello");
                    if(this.isInterrupted()){        // 查看中斷標(biāo)志,若為 true 結(jié)束循環(huán)
                        break;
                    }
                }
            }        
        }
    
    }

    原文鏈接:https://blog.csdn.net/m0_63947499/article/details/125416461

    上一篇我簡(jiǎn)單對(duì)七彩虹隱星P16做了個(gè)開箱,這篇我來單獨(dú)對(duì)七彩虹隱星P16性能部分進(jìn)行測(cè)試。

    走小米路線的新“星”游戲本?搭載RTX 4060的七彩虹隱星P16開箱

    七彩虹隱星P16采用的是藍(lán)天Insyde H2O圖形化BIOS,版本號(hào)為1.07。這個(gè)Insyde BIOS曾經(jīng)也是主流BIOS之一,常見于神舟、惠普等品牌機(jī)上。界面比較簡(jiǎn)單,主要包含五個(gè)基本常用的功能選項(xiàng),如果想要解鎖高級(jí)模式,那就需要搭配H2OUVE軟件或是UEFI Shell等軟件。如果沒特別需求的話,建議不要輕易改動(dòng)BIOS參數(shù)設(shè)定或是刷第三方BIOS。

    七彩虹隱星P16預(yù)裝的是Windows 11家庭中文版,版本號(hào)是22H2(22621.1413),系統(tǒng)沒有預(yù)裝Office。以下全部測(cè)試也是以該版本進(jìn)行。從下圖可以看到,七彩虹隱星P16分辨率就是2560*1600@165Hz。

    英特爾酷睿i7-12650H是采用Intel 7工藝制程的第12代酷睿H系列移動(dòng)標(biāo)壓處理器,屬于中高端型號(hào)。英特爾酷睿i7-12650H采用了6顆性能核心+4顆能效核心(6P+4E))的大小核設(shè)計(jì),TDP為45瓦,自帶24MB三級(jí)緩存。

    CPU方面,七彩虹隱星P16在CPU-Z軟件下的單線程性能得分為719.3,高與i7-10700的568和銳龍7-3700X的511,性能提升明顯;多線程分?jǐn)?shù)為5671.1,性能與i7-10700的5625接近,高于銳龍7-3700X的5433。

    七彩虹隱星P16在CineBenchR 20下的跑分情況如下,CPU單核得分675cb,多核得分4629 cb;七彩虹隱星P16在CineBenchR 23下的跑分情況如下,CPU單核得分1752 pts,多核得分11729 pts。

    七彩虹隱星P16在3DMark CPU Profile下單線程得分為954,最大線程下得分為6759。

    七彩虹隱星P16在Geekbench6下的得分情況如下,單核得分為2227,多核得分為9900。

    下面我們來看看七彩虹隱星P16內(nèi)置顯卡性能表現(xiàn)如何。

    與PC端的驅(qū)動(dòng)軟件升級(jí)不同,筆記本端的驅(qū)動(dòng)升級(jí)要慢很多。我這里這臺(tái)隱星P16的驅(qū)動(dòng)版本為5月15日發(fā)布的531.87,隨著后續(xù)版本的升級(jí),對(duì)應(yīng)的軟件和游戲測(cè)試結(jié)果會(huì)比本文中的結(jié)果高屬于正常現(xiàn)象。

    首先我這里先搭配3DMARK跑個(gè)分供部分玩家參考。

    七彩虹隱星P16在PCIe功能測(cè)試下的帶寬為12.98GB/s。

    七彩虹隱星P16在Fire Strike下的跑分為 22730 分,其中顯卡分?jǐn)?shù)為27355。

    七彩虹隱星P16在Fire Strike Extreme下的跑分為 12000 分,其中顯卡分?jǐn)?shù)為12625。

    七彩虹隱星P16在NVIDIA DLSS功能測(cè)試下的結(jié)果如下,DLSS關(guān)閉的下的幀數(shù)為12.02 fps,DLSS3開啟后則提升到了52.93fps,對(duì)比原來的12幀高出了4倍以上,可見DLSS 3的性能確實(shí)強(qiáng)悍。注意,DLSS3測(cè)試下的DLSS輸出分辨率為3840 ×2160,對(duì)應(yīng)的模式為性能模式。

    七彩虹隱星P16在Port Royal下的分?jǐn)?shù)為5878,戰(zhàn)地5、APEX Legend、GTA V在1440P Ultra預(yù)設(shè)參數(shù)下的預(yù)估游戲性能分別為95+ fps、105+ fps和60+ fps,可以實(shí)現(xiàn)2K分辨率、高參數(shù)設(shè)置下暢玩游戲。

    七彩虹隱星P16在AIDA64 GPGPU Benchmark下的性能表現(xiàn)如下,對(duì)應(yīng)的讀寫拷貝性能分別為12514 MB/s、12431 MB/s和829.94 GB/s。

    七彩虹隱星P16在GeekBench6 GPU benchmark下的性能得分為97588。

    接著來看看七彩虹隱星P16在PCMARK10下得分情況,PCMARK10下的總得分是7151,常用基本功能得分是10135,生產(chǎn)力得分是9199,數(shù)位內(nèi)容創(chuàng)作得分是10645。

    七彩虹隱星P16在PCMARK10 extened下得分情況,PCMARK10下的總得分是7923,常用基本功能得分是10085,生產(chǎn)力得分是10047,數(shù)位內(nèi)容創(chuàng)作得分是10542,游戲得分為9971。

    七彩虹隱星P16內(nèi)置一塊512G的七彩虹CN600 Pro,這是一款PCIe 3.0*4硬盤,支持NVMe 1.4協(xié)議。七彩虹CN600 PRO采用了是聯(lián)蕓科技MAP1202A主控以及國產(chǎn)長(zhǎng)江存儲(chǔ)128層TLC存儲(chǔ)顆粒,官方連續(xù)讀寫性能分別是3300MB/s和2600MB/s。

    在讀寫速度方面,從搭配CrystalDsikMark實(shí)際測(cè)試來看,七彩虹CN600 Pro讀寫性能分別達(dá)到了3541MB/s和2706MB/s,沒有存在虛標(biāo)的問題。對(duì)于追求大容量和讀寫性能的用戶,可以直接升級(jí)到2塊2T PCIe 4.0*4的m.2 NVMe SSD。

    由于七彩虹隱星P16游戲本預(yù)裝單條DDR5 4800MHz內(nèi)存條,在性能方面的優(yōu)勢(shì)不太明顯,后續(xù)有必要手動(dòng)升級(jí)到更高頻率的雙通道DDR5內(nèi)存條。

    下面我來談?wù)勂卟屎珉[星P16游戲本搭配游戲?qū)崪y(cè)表現(xiàn)如何,我這里選擇了《古墓麗影:暗影》、《Far Cry 6》、《極限競(jìng)速:地平線5》、《賽博朋克2077》這幾款內(nèi)置Benchmark的游戲。

    《古墓麗影:暗影》參數(shù)這里選擇了DX12、2560*1600分辨率、預(yù)設(shè)畫面質(zhì)量最高,NVIDIA RTX DLSS對(duì)應(yīng)選項(xiàng)為平衡模式,七彩虹隱星P16游戲本在《古墓麗影:暗影》下的平均幀率為118fps。

    《Far Cry 6》在預(yù)設(shè)畫面質(zhì)量高、2560*1600分辨率下,七彩虹隱星P16游戲本在《Far Cry 6》下的平均幀率達(dá)到了88,可以更加流暢的運(yùn)行游戲。

    《極限競(jìng)速:地平線5》在視覺預(yù)設(shè)超高+2560*1440分辨率+光線追蹤質(zhì)量高下,七彩虹隱星P16游戲本在《極限競(jìng)速:地平線5》下的平均幀率為100fps,整體表現(xiàn)相對(duì)平穩(wěn)。

    最后是支持英偉達(dá)RTX DLSS 3技術(shù)以及Reflex的《Cyberpunk 2077》,預(yù)設(shè)光線追蹤Ultra、2560*1600分辨率+DLSS質(zhì)量 Auto模式下,七彩虹隱星P16游戲本在《Cyberpunk 2077》下的平均幀率為45.04。

    如果你修改為超級(jí)性能模式的話,那么平均幀率會(huì)提升到70.69fps。

    在壓力測(cè)試這塊,我這里選擇了Furmark@2560*1440分辨率對(duì)七彩虹隱星P16游戲本進(jìn)行壓力測(cè)試,不搭配AIDA64進(jìn)行雙烤壓力測(cè)試,室溫30度、無空調(diào)。初始測(cè)試時(shí)七彩虹隱星P16游戲本的顯卡功耗可以達(dá)到141.4W。

    烤機(jī)一段時(shí)間后,GPU溫度提升到了84.8攝氏度,對(duì)應(yīng)的功耗也基本穩(wěn)定在了109W。如果在空調(diào)環(huán)境下進(jìn)行測(cè)試,這個(gè)GPU溫度會(huì)更低一些,功耗也會(huì)有對(duì)應(yīng)提升。就室溫以及這個(gè)測(cè)試結(jié)果而言,七彩虹隱星P16游戲本在散熱性能方面的表現(xiàn)已經(jīng)很不錯(cuò)。

    七彩虹隱星P16游戲本整機(jī)在這個(gè)測(cè)試過程中,初期功率可以達(dá)到190瓦,之后功耗會(huì)在165瓦~190瓦之間波動(dòng)。

    最后聊聊七彩虹這個(gè)官方驅(qū)動(dòng)控制中心,這類軟件可以說是品牌類筆記本標(biāo)準(zhǔn)必備的軟件,可以用來調(diào)節(jié)性能模式、修改燈光、修改按鍵、錄制宏等等。

    總的來說,當(dāng)下酷睿i7-12650H+ RTX 4060 LAPTOP GPU的硬件配置已經(jīng)成為6000元價(jià)位的流行標(biāo)配,此類筆記本最大的賣點(diǎn)是支持DDR5內(nèi)存以及支持DLSS 3技術(shù)的英偉達(dá)RTX 40系Laptop GPU,尤其是開啟DLSS后可以在不犧牲畫質(zhì)的前提下大幅提升幀率,從而提升流暢的游戲體驗(yàn)。

    作為七彩虹推出的全新系列電競(jìng)筆記本,七彩虹隱星P16在外觀設(shè)計(jì)方面采用了辨識(shí)度很高的圖案和配色設(shè)計(jì),硬件配置可以滿足日常大部分游戲、設(shè)計(jì)需求,搭配GPU直連設(shè)計(jì)以及散熱設(shè)計(jì)方面的優(yōu)化升級(jí),可以充分發(fā)揮CPU和GPU的性能,滿足玩對(duì)高性能體驗(yàn)以及模式下的散熱需求。此外筆記本拆裝也比較方便,日后內(nèi)存和SSD的擴(kuò)容升級(jí)也比較簡(jiǎn)單。

    最后想要提醒各位的是,如果你想要給七彩虹隱星P16搭配多功能Type-C口便攜顯示器使用或是搭配多功能Type-C口桌面顯示器使用,務(wù)必確認(rèn)顯示器的Type-C口支持DP傳輸協(xié)議,此類顯示器一般都在在Type-C下方標(biāo)識(shí)DP logo,否則的話會(huì)無法正常實(shí)現(xiàn)畫面輸出功能。

    以上就是此次簡(jiǎn)單的體驗(yàn)分享,感謝各位觀看。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有