国产精品一久久香蕉产线看-国产精品一区在线播放-国产精品自线在线播放-国产毛片久久国产-一级视频在线-一级视频在线观看免费

java面試題五

時間:2022-07-11 06:04:45 面試 我要投稿
  • 相關推薦

java面試題五

1. 多線程有幾種實現方法?同步有幾種實現方法?

java面試題五

多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口

同步的實現方面有兩種,分別是synchronized,wait與notify

wait():使一個線程處于等待狀態,并且釋放所持有的對象的lock。

sleep():使一個正在運行的線程處于睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。

notify():喚醒一個處于等待狀態的線程,注意的是在調用此方法的時候,并不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。

Allnotity():喚醒所有處入等待狀態的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。

2.啟動一個線程是用run()還是start()? .

啟動一個線程是調用start()方法,使線程就緒狀態,以后可以被調度為運行狀態,一個線程必須關聯一些具體的執行代碼,run()方法是該線程所關聯的執行代碼。

3.當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?

分幾種情況:

1.其他方法前是否加了synchronized關鍵字,如果沒加,則能。

2.如果這個方法內部調用了wait,則可以進入其他synchronized方法。

3.如果其他個方法都加了synchronized關鍵字,并且內部沒有調用wait,則不能。

4.如果其他方法是static,它用的同步鎖是當前類的字節碼,與非靜態的方法不能同步,因為非靜態的方法用的是this。

4.線程的基本概念、線程的基本狀態以及狀態之間的關系

一個程序中可以有多條執行線索同時執行,一個線程就是程序中的一條執行線索,每個線程上都關聯有要執行的代碼,即可以有多段程序代碼同時運行,每個程序至少都有一個線程,即main方法執行的那個線程。如果只是一個cpu,它怎么能夠同時執行多段程序呢?這是從宏觀上來看的,cpu一會執行a線索,一會執行 b線索,切換時間很快,給人的感覺是a,b在同時執行,好比大家在同一個辦公室上網,只有一條鏈接到外部網線,其實,這條網線一會為a傳數據,一會為b傳數據,由于切換時間很短暫,所以,大家感覺都在同時上網。

狀態:就緒,運行,synchronize阻塞,wait和sleep掛起,結束。wait必須在synchronized內部調用。

調用線程的start方法后線程進入就緒狀態,線程調度系統將就緒狀態的線程轉為運行狀態,遇到synchronized語句時,由運行狀態轉為阻塞,當 synchronized獲得鎖后,由阻塞轉為運行,在這種情況可以調用wait方法轉為掛起狀態,當線程關聯的代碼執行完后,線程變為結束狀態。

5.簡述synchronized和java.util.concurrent.locks.Lock的異同 ?

主要相同點:Lock能完成synchronized所實現的所有功能

主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。Lock還有更強大的功能,例如,它的tryLock方法可以非阻塞方式去拿鎖。

6. 同步和異步有何異同,在什么情況下分別使用他們?舉例說明。

如果數據將在線程間共享。例如正在寫的數據以后可能被另一個線程讀到,或者正在讀的數據可能已經被另一個線程寫過了,那么這些數據就是共享數據,必須進行同步存取。

當應用程序在對象上調用了一個需要花費很長時間來執行的方法,并且不希望讓程序等待方法的返回時,就應該使用異步編程,在很多情況下采用異步途徑往往更有效率。

4.請說出你所知道的線程同步的方法。

wait():使一個線程處于等待狀態,并且釋放所持有的對象的lock。

sleep():使一個正在運行的線程處于睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。

notify():喚醒一個處于等待狀態的線程,注意的是在調用此方法的時候,并不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。

Allnotity():喚醒所有處入等待狀態的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。

5.線程的基本概念、線程的基本狀態以及狀態之間的關系

線程指在程序執行過程中,能夠執行程序代碼的一個執行單位,每個程序至少都有一個線程,也就是程序本身。

Java中的線程有四種狀態分別是:運行、就緒、掛起、結束。


【java面試題五】相關文章:

Java實習報告09-20

c面試題08-04

java簡歷的自我評價11-08

java實習報告模板11-08

java自我介紹12-06

java實訓總結11-18

java實訓報告04-15

java轉正申請書07-02

java面試自我介紹05-06

Java實習報告(15篇)03-04

主站蜘蛛池模板: 新26uuu在线亚洲欧美 | 久久久99视频 | 欧美妞干网 | 色噜噜狠狠色综合日日 | 久久精品免视看国产成人2021 | 黄网址免费 | 靠逼久久 | 国产午夜影院 | 久久看免费 | 日韩不卡高清视频 | 一级片在线免费 | 激情综合五月网 | 亚洲国产中文字幕在线观看 | 欧美日韩综合 | 甜性涩爱免费在线观看 | 韩国 日本 在线观看 | 99视频国产在线 | 免费人成在线观看网站品爱网 | 男女爽爽无遮拦午夜视频 | 成年网址网站在线观看 | 精选国产门事件福利在线观看 | 丝袜足控免费网站xx视频 | 一区小说二区另类小说三区图 | 久久亚洲精品成人 | 成人久久18免费网址 | 91视频聊天网| 日批软件在线观看 | 韩国伦理在线免费观看 | 91这里只有精品 | 毛片在线免费视频 | 中国一级特黄毛片 | 翁熄系列乱老扒小雪小说 | 国产视频精品免费 | 国产伦码精品一区二区 | 亚洲人成小说色在线 | 黄色一级免费片 | 国产一区视频在线免费观看 | 亚洲成a人片在线观看88 | 日本一区高清 | 国产成人精品免费视频大全办公室 | 欧美18一19xxx|