华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java面試題 >> 文章內(nèi)容

2020java高頻面試題及答案:第九部分

來源:中華考試網(wǎng)  [2020年10月10日]  【

  線程的sleep()方法和yield()方法有什么區(qū)別?

  答:

 、 sleep()方法給其他線程運(yùn)行機(jī)會(huì)時(shí)不考慮線程的優(yōu)先級(jí),因此會(huì)給低優(yōu)先級(jí)的線程以運(yùn)行的機(jī)會(huì);yield()方法只會(huì)給相同優(yōu)先級(jí)或更高優(yōu)先級(jí)的線程以運(yùn)行的機(jī)會(huì);

 、 線程執(zhí)行sleep()方法后轉(zhuǎn)入阻塞(blocked)狀態(tài),而執(zhí)行yield()方法后轉(zhuǎn)入就緒(ready)狀態(tài);

  ③ sleep()方法聲明拋出InterruptedException,而yield()方法沒有聲明任何異常;

 、 sleep()方法比yield()方法(跟操作系統(tǒng)CPU調(diào)度相關(guān))具有更好的可移植性。

  當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的synchronized方法A之后,其它線程是否可進(jìn)入此對(duì)象的synchronized方法B?

  答:不能。其它線程只能訪問該對(duì)象的非同步方法,同步方法則不能進(jìn)入。因?yàn)榉庆o態(tài)方法上的synchronized修飾符要求執(zhí)行方法時(shí)要獲得對(duì)象的鎖,如果已經(jīng)進(jìn)入A方法說明對(duì)象鎖已經(jīng)被取走,那么試圖進(jìn)入B方法的線程就只能在等鎖池(注意不是等待池哦)中等待對(duì)象的鎖。

  填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽java課程!害怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  請(qǐng)說出與線程同步以及線程調(diào)度相關(guān)的方法。

  答:

  - wait():使一個(gè)線程處于等待(阻塞)狀態(tài),并且釋放所持有的對(duì)象的鎖;

  - sleep():使一個(gè)正在運(yùn)行的線程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,調(diào)用此方法要處理InterruptedException異常;

  - notify():喚醒一個(gè)處于等待狀態(tài)的線程,當(dāng)然在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個(gè)等待狀態(tài)的線程,而是由JVM確定喚醒哪個(gè)線程,而且與優(yōu)先級(jí)無關(guān);

  - notityAll():喚醒所有處于等待狀態(tài)的線程,該方法并不是將對(duì)象的鎖給所有線程,而是讓它們競(jìng)爭(zhēng),只有獲得鎖的線程才能進(jìn)入就緒狀態(tài);

  編寫多線程程序有幾種實(shí)現(xiàn)方式?

  答:一種是繼承Thread類;另一種是實(shí)現(xiàn)Runnable接口。兩種方式都要通過重寫run()方法來定義線程的行為,推薦使用后者,因?yàn)镴ava中的繼承是單繼承,一個(gè)類有一個(gè)父類,如果繼承了Thread類就無法再繼承其他類了,顯然使用Runnable接口更為靈活。

責(zé)編:yangliu1997
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
蕲春县| 辉南县| 苍溪县| 封丘县| 新田县| 图片| 孟村| 水城县| 商城县| 遂平县| 抚远县| 上饶市| 林甸县| 石屏县| 诏安县| 莫力| 会泽县| 卢湾区| 栾川县| 根河市| 珲春市| 兴国县| 临邑县| 沧源| 新巴尔虎右旗| 镶黄旗| 宾川县| 长阳| 德安县| 万盛区| 环江| 禹城市| 清新县| 海宁市| 南丰县| 东海县| 遵义市| 北川| 清原| 清镇市| 洛浦县|