中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站設(shè)計中下拉列表怎么做如何刷關(guān)鍵詞指數(shù)

網(wǎng)站設(shè)計中下拉列表怎么做,如何刷關(guān)鍵詞指數(shù),長沙 外貿(mào)網(wǎng)站建設(shè)公司排名,自助網(wǎng)站系統(tǒng)目錄 🤣一.線程與進(jìn)程的概念與聯(lián)系: 進(jìn)程的基本概念: 線程的基本概念: 進(jìn)程和線程的區(qū)別與聯(lián)系: 🙃代碼執(zhí)行實列: 1.通過繼承Thread父類來實現(xiàn)多線程 2.通過實現(xiàn)Runnable接口來實現(xiàn)多線程…

目錄

🤣一.線程與進(jìn)程的概念與聯(lián)系:

進(jìn)程的基本概念:

線程的基本概念:

進(jìn)程和線程的區(qū)別與聯(lián)系:

🙃代碼執(zhí)行實列:

1.通過繼承Thread父類來實現(xiàn)多線程

2.通過實現(xiàn)Runnable接口來實現(xiàn)多線程:

3.通過Lambda表達(dá)式來實現(xiàn)多線程:

😇Thread類的常見屬性和構(gòu)造方法:


🤣一.線程與進(jìn)程的概念與聯(lián)系:

一張漫畫,生動闡明進(jìn)程進(jìn)程與線程的關(guān)系:

進(jìn)程的基本概念:

  • 什么是進(jìn)程?→

🧐🧐定義:進(jìn)程是一個具有一定獨(dú)立功能的程序在一個數(shù)據(jù)集合上依次動態(tài)執(zhí)行的過程。進(jìn)程是一個正在執(zhí)行的程序的實例,包括程序計數(shù)器,寄存器和程序變量的當(dāng)前值。


  • 進(jìn)程有哪些特征?→

1.進(jìn)程依賴于程序的運(yùn)行而存在,進(jìn)程是動態(tài)的,程序是靜態(tài)的

2.進(jìn)程是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位(CPU除外,線程是處理器任務(wù)調(diào)度和執(zhí)行的基本單位);

3.每個進(jìn)程擁有獨(dú)立的地址空間,地址空間包括代碼區(qū),數(shù)據(jù)區(qū)和堆棧區(qū),進(jìn)程之間的地址空間是間隔的,互不影響


線程的基本概念:

  • 什么是線程?

🦉🦉定義:一個線程就是一個“執(zhí)行流”,每個線程之間都可以按照順序執(zhí)行自己的代碼,多個線程之間“同時”執(zhí)行著多份代碼

  • 為什么要用到線程?

?先, "并發(fā)編程" 成為 "剛需":

為了充分利用CPU的資源,避免出現(xiàn)“一核工作,多核圍觀”的情況,我們可以通過編寫特殊的代碼,把多個CPU核心,充分利用起來,這樣的代碼就稱為“并發(fā)編程”,多進(jìn)程的編程,就是一種典型的并發(fā)編程。雖然多進(jìn)程能夠解決問題,但是隨著對于效率的要求越來越高,就希望有更好的方法來實現(xiàn)并發(fā)編程。而多進(jìn)程的編程,最大的問題,就是進(jìn)程太“重”,創(chuàng)建進(jìn)程/銷毀進(jìn)程的開銷比較大(時間,空間),一旦場景需要頻繁的創(chuàng)建和銷毀進(jìn)程,開銷就非常明顯了→最典型的是服務(wù)器開發(fā),針對每一個發(fā)出請求的客戶端,都創(chuàng)建一個單獨(dú)的進(jìn)程,由這個進(jìn)程負(fù)責(zé)給客戶端提供服務(wù)。為了解決進(jìn)程開銷比較大的問題,就發(fā)明了線程(Thread),線程可以理解為更加輕量級的進(jìn)程,也能解決開發(fā)并發(fā)程序的問題,但是創(chuàng)建/銷毀的開銷,要比進(jìn)程更低。

進(jìn)程和線程的區(qū)別與聯(lián)系:

  • 1.進(jìn)程包含線程:

一個進(jìn)程里至少包含一個線程(主線程),也可以包含多個線程。不能沒有線程

  • 2.進(jìn)程是系統(tǒng)分配資源的基本單位

  • 3.線程是系統(tǒng)調(diào)度執(zhí)行的基本單位

  • 4.同一個進(jìn)程里的線程之間,共用一份系統(tǒng)資源(內(nèi)存,硬盤,網(wǎng)絡(luò)寬帶等),尤其是內(nèi)存資源,就是代碼中定義的變量/對象等信息,編程中,多個線程,是可以共用同一份變量的~
  • 5.多線程是當(dāng)下實現(xiàn)并發(fā)編程的主流方式,通過多線程,就可以充分利用好多核CPU。但是,也不是線程數(shù)目越多,就越好,線程數(shù)目達(dá)到一定程度,把多個核心都利用充分之后,此時繼續(xù)增加線程,無法再提高效率,甚至可能會影響效率(線程的調(diào)度,也是有開銷的)
  • 6.多個線程之間,可能會互相影響,線程安全問題。一個線程拋出異常,也可能會把其他線程一起帶走?
  • 7.多個進(jìn)程之間,一般不會互相影響,一個進(jìn)程奔潰了,不會影響到其他進(jìn)程(進(jìn)程的隔離性)

🙃代碼執(zhí)行實列:

1.通過繼承Thread父類來實現(xiàn)多線程

//1.通過繼承Thread父類來實現(xiàn)進(jìn)程
class MyThread extends Thread{@Overridepublic void run(){//這里寫的代碼,就是即將創(chuàng)建的線程,要執(zhí)行的邏輯while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {//throw new RuntimeException(e);e.printStackTrace();}}}
}
public class Demo1 {public static void main(String[] args) throws InterruptedException {MyThread t = new MyThread();//創(chuàng)建線程->運(yùn)行hello main 和 hello thread 并發(fā)執(zhí)行,同時打印t.start();//run 不會創(chuàng)建線程,也是再主線程中執(zhí)行邏輯//t.run();只循環(huán)打印hello threadwhile(true){System.out.println("hello main");Thread.sleep(1000);}}
}

也可以通過匿名內(nèi)部類來實現(xiàn):

//通過匿名內(nèi)部類來創(chuàng)建多線程
public class Demo3 {public static void main(String[] args) throws InterruptedException {Thread t = new Thread(){@Overridepublic void run(){while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}};t.start();while(true){System.out.println("hello main");Thread.sleep(1000);}}
}

運(yùn)行結(jié)果:

2.通過實現(xiàn)Runnable接口來實現(xiàn)多線程:

//2.通過實現(xiàn)Runnable接口來實現(xiàn)多線程
class MyRunnable implements Runnable{//描述線程里要完成的邏輯是啥@Overridepublic void run() {while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}
public class Demo2 {public static void main(String[] args) throws InterruptedException {MyRunnable runnable = new MyRunnable();Thread t = new Thread(runnable);t.start();while(true){System.out.println("hello main");Thread.sleep(1000);}}
}

也可以通過匿名內(nèi)部類來實現(xiàn):

public class Demo4 {public static void main(String[] args) throws InterruptedException {//通過匿名內(nèi)部類來編寫Thread t = new Thread(new Runnable() {@Overridepublic void run() {while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}});t.start();while(true){System.out.println("hello main");Thread.sleep(1000);}}
}

3.通過Lambda表達(dá)式來實現(xiàn)多線程:

//通過lambda表達(dá)式來進(jìn)行編寫
public class Demo5 {public static void main(String[] args) throws InterruptedException {Thread t = new Thread(()->{while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});t.start();while(true){System.out.println("hello main");Thread.sleep(1000);}}
}

😇Thread類的常見屬性和構(gòu)造方法:

  • Thread類常見的構(gòu)造方法:

  • Thread類常見的屬性:

public class Demo6 {public static void main(String[] args) {Thread t = new Thread(()->{while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}},"自定義線程");//->線程名字為自定義線程t.start();System.out.println("線程ID : " + t.getId());System.out.println("線程名字: " + t.getName());System.out.println("線程狀態(tài): " + t.getState());System.out.println("線程執(zhí)行順序:" + t.getPriority());}
}

運(yùn)行結(jié)果:

Runnable正在運(yùn)行,實際上Java沒有Running這個線程狀態(tài),把正在CPU上運(yùn)行,和隨時可以調(diào)度到CPU上運(yùn)行的,都統(tǒng)稱為Runnable

  • 前臺線程&后臺線程

后臺線程:如果這個線程執(zhí)行過程中,不能阻止進(jìn)程結(jié)束(雖然線程執(zhí)行著,但是進(jìn)程就要結(jié)束了,此時這個線程也會隨之被帶走)這樣的線程就稱為“后臺線程”

前臺線程:如果某個線程執(zhí)行過程中,能阻止進(jìn)程的結(jié)束,此時這個線程就是“前臺線程”

前臺線程和后臺線程,主要是影響程序的退出

public class Demo7 {//設(shè)置前public static void main1(String[] args) {Thread t1 = new Thread(()->{while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});t1.start();}//設(shè)置后public static void main(String[] args) {Thread t2 = new Thread(()->{while(true){System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});//把 t 設(shè)置線程為后臺線程(守護(hù)線程),不能在阻止程序結(jié)束了t2.setDaemon(true);t2.start();}
}

?結(jié)語:?寫博客不僅僅是為了分享學(xué)習(xí)經(jīng)歷,同時這也有利于我鞏固知識點(diǎn),總結(jié)該知識點(diǎn),由于作者水平有限,對文章有任何問題的還請指出,接受大家的批評,讓我改進(jìn)。同時也希望讀者們不吝嗇你們的點(diǎn)贊+收藏+關(guān)注,你們的鼓勵是我創(chuàng)作的最大動力!

http://m.risenshineclean.com/news/40078.html

相關(guān)文章:

  • 自己怎么制作網(wǎng)站百度排行
  • 網(wǎng)站建設(shè)規(guī)劃設(shè)計書個人網(wǎng)站的制作模板
  • 重慶網(wǎng)站設(shè)計公司網(wǎng)站制作百度熱搜的含義
  • pta編程網(wǎng)站網(wǎng)絡(luò)服務(wù)商
  • 知果果網(wǎng)站誰做的網(wǎng)站建設(shè)費(fèi)用多少錢
  • 深圳營銷型網(wǎng)站建設(shè)電話網(wǎng)站快速排名上
  • 做動態(tài)網(wǎng)站的軟件怎么自己制作網(wǎng)頁
  • 公司網(wǎng)站建設(shè)工作方案口碑營銷的特點(diǎn)
  • 網(wǎng)站內(nèi)怎么做鏈接站長查詢站長工具
  • 長沙高端網(wǎng)站制作公司上海b2b網(wǎng)絡(luò)推廣外包
  • 網(wǎng)站制作公透明清晰北京seo關(guān)鍵詞優(yōu)化外包
  • 廣州域名企業(yè)網(wǎng)站建站哪家好百度收錄網(wǎng)站需要多久
  • 網(wǎng)站系統(tǒng)的運(yùn)營和維護(hù)互聯(lián)網(wǎng)廣告營銷是什么
  • 商城建設(shè)網(wǎng)站的原因網(wǎng)站優(yōu)化課程
  • 蘭州微網(wǎng)站重慶網(wǎng)站seo費(fèi)用
  • 衡水建站公司seo用什么論壇引流
  • 谷歌優(yōu)化和谷歌競價的區(qū)別重慶可靠的關(guān)鍵詞優(yōu)化研發(fā)
  • 做網(wǎng)站編程用什么語言好seo怎么做最佳
  • 外國人學(xué)做中國菜的網(wǎng)站營銷網(wǎng)站做的好的公司
  • 網(wǎng)上做家教兼職哪個網(wǎng)站南昌百度快速排名提升
  • 網(wǎng)站開發(fā)經(jīng)常遇到的問題大一html網(wǎng)頁制作作業(yè)簡單
  • 南京模板建網(wǎng)站哪家好百度一下官網(wǎng)
  • 聊大 網(wǎng)站設(shè)計seo優(yōu)化主要做什么
  • 太倉建設(shè)銀行網(wǎng)站搜索指數(shù)查詢
  • 劉琪 找誰做網(wǎng)站靠譜東莞網(wǎng)絡(luò)營銷全網(wǎng)推廣
  • 做網(wǎng)站怎么做鼠標(biāo)跟隨2023很有可能再次封城嗎
  • 網(wǎng)站經(jīng)營與建設(shè)優(yōu)化大師軟件下載
  • 網(wǎng)上有做口譯的網(wǎng)站么官方進(jìn)一步優(yōu)化
  • 彩票代購網(wǎng)站建設(shè)百度怎么注冊自己的店鋪
  • 做電影平臺網(wǎng)站怎么賺錢的什么是網(wǎng)絡(luò)營銷平臺