400-650-7353
您所在的位置:首頁 > IT干貨資料 > java > 【Java基礎(chǔ)知識】Java中的線程是什么

【Java基礎(chǔ)知識】Java中的線程是什么

  • 發(fā)布: java培訓(xùn)
  • 來源:Java干貨資料
  • 2019-12-05 14:16:52
  • 閱讀()
  • 分享
  • 手機(jī)端入口

在計(jì)算機(jī)中當(dāng)一個(gè)程序運(yùn)行的時(shí)候就會創(chuàng)建至少一個(gè)進(jìn)程,例如當(dāng)我們運(yùn)行QQ的時(shí)候,系統(tǒng)就會創(chuàng)建進(jìn)程來處理我們平時(shí)的一些操作,當(dāng)我們打開任務(wù)管理器的時(shí)候,在進(jìn)程的列表里面就可以找到QQ.exe的運(yùn)行程序;

在計(jì)算機(jī)中處理進(jìn)程之外還有另一個(gè)概念就是線程,線程是存在于進(jìn)程當(dāng)中,一個(gè)進(jìn)程可以包含多個(gè)線程;當(dāng)我們的計(jì)算機(jī)有多核處理器的時(shí)候,使用多線程可以加快程序的運(yùn)算速率;如果一個(gè)進(jìn)程中只有一個(gè)線程,當(dāng)程序遇到一個(gè)比較耗時(shí)的計(jì)算的時(shí)候,由于程序是單線程的,那么程序只能等待這個(gè)運(yùn)算結(jié)束的時(shí)候再繼續(xù)運(yùn)行,這樣會大大的降低程序的效率;當(dāng)時(shí)用多個(gè)線程的時(shí)候,在某個(gè)線程遇到比較耗時(shí)的運(yùn)算的時(shí)候,該線程可以繼續(xù)自己的運(yùn)算,但是其他的線程也可以同步進(jìn)行,這樣當(dāng)耗時(shí)的計(jì)算結(jié)束之后,其他線程也將自己所需要的東西執(zhí)行完畢,這樣就會很大的提高程序執(zhí)行效率;

在程序運(yùn)行中對于文件的保存相對于處理器的運(yùn)算速度來說是很慢的,當(dāng)我們程序中接收到一個(gè)保存文件的信息之后,我們可以創(chuàng)建一個(gè)保存文件的線程,在主線程中我們可以繼續(xù)進(jìn)行我們的其他運(yùn)算,這樣當(dāng)文件保存好之后,我們的其他運(yùn)算也會完成,互不影響;

Java線程詳解

在Java中我們可以創(chuàng)建一個(gè)自己的類繼承于Thread類,并且重寫run() 方法,當(dāng)線程啟動之后,run()方法里面的操作都在線程中進(jìn)行處理,而不會影響主線程的信息;

當(dāng)我們創(chuàng)建好一個(gè)自定義線程類之后,我們可以創(chuàng)建這個(gè)自定義線程的對象,進(jìn)行線程的啟動;線程須調(diào)用start();方法進(jìn)行啟動,這樣run()方法里面的內(nèi)容才會在線程中運(yùn)行;如果我們不去調(diào)用start()方法,那我們只是創(chuàng)建了一個(gè)普通的類,即使我們手動調(diào)用run()方法,run()方法里面的內(nèi)容也不會在線程中運(yùn)行;

在Java中線程主要有初始狀態(tài),運(yùn)行狀態(tài),阻塞狀態(tài),終止?fàn)顟B(tài)等;當(dāng)我們新創(chuàng)建一個(gè)線程對象的時(shí)候,此時(shí)線程的狀態(tài)為初始狀態(tài);當(dāng)我們調(diào)用start()之后,此時(shí)的線程才被激活成為運(yùn)行狀態(tài),之后run()方法里面的信息才會在子線程中運(yùn)行;我們可以在不同的階段調(diào)用不同的方法將線程設(shè)置為不同的狀態(tài);比如有時(shí)候我們的操作需要等待其他線程中運(yùn)算結(jié)束之后才可以繼續(xù)進(jìn)行,這時(shí)候我們就可以將線程設(shè)置為等待狀態(tài),當(dāng)需要的資源滿足條件之后,可以繼續(xù)運(yùn)行當(dāng)前的線程;

 

文章“【Java基礎(chǔ)知識】Java中的線程是什么”已幫助

>>本文地址:http://liujunjsxg.cn/zhuanye/2019/48089.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營全域電商運(yùn)營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME