黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):java線程練習(xí)題

Java基礎(chǔ)學(xué)習(xí):java線程練習(xí)題

更新時(shí)間:2020-04-28 14:37:55 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3344次

    1.進(jìn)程和線程的區(qū)別是什么?

    進(jìn)程是執(zhí)行著的應(yīng)用程序,而線程是進(jìn)程內(nèi)部的一個(gè)執(zhí)行序列。一個(gè)進(jìn)程可以有多個(gè)線程。線程又叫做輕量級(jí)進(jìn)程。

    2.創(chuàng)建線程有幾種不同的方式?你喜歡哪一種?為什么?

    有三種方式可以用來(lái)創(chuàng)建線程:

    繼承Thread類(lèi)

    實(shí)現(xiàn)Runnable接口

    應(yīng)用程序可以使用Executor框架來(lái)創(chuàng)建線程池

    實(shí)現(xiàn)Runnable接口這種方式更受歡迎,因?yàn)檫@不需要繼承Thread類(lèi)。在應(yīng)用設(shè)計(jì)中已經(jīng)繼承了別的對(duì)象的情況下,這需要多繼承(而Java不支持多繼承),只能實(shí)現(xiàn)接口。同時(shí),線程池也是非常高效的,很容易實(shí)現(xiàn)和使用。

    3.概括的解釋下線程的幾種可用狀態(tài)。

    線程在執(zhí)行過(guò)程中,可以處于下面幾種狀態(tài):

    就緒(Runnable):線程準(zhǔn)備運(yùn)行,不一定立馬就能開(kāi)始執(zhí)行。

    運(yùn)行中(Running):進(jìn)程正在執(zhí)行線程的代碼。

    等待中(Waiting):線程處于阻塞的狀態(tài),等待外部的處理結(jié)束。

    睡眠中(Sleeping):線程被強(qiáng)制睡眠。

    I/O阻塞(BlockedonI/O):等待I/O操作完成。

    同步阻塞(BlockedonSynchronization):等待獲取鎖。

    死亡(Dead):線程完成了執(zhí)行。

    4.同步方法和同步代碼塊的區(qū)別是什么?

    在Java語(yǔ)言中,每一個(gè)對(duì)象有一把鎖。線程可以使用synchronized關(guān)鍵字來(lái)獲取對(duì)象上的鎖。synchronized關(guān)鍵字可應(yīng)用在方法級(jí)別(粗粒度鎖)或者是代碼塊級(jí)別(細(xì)粒度鎖)。

    5.在監(jiān)視器(Monitor)內(nèi)部,是如何做線程同步的?程序應(yīng)該做哪種級(jí)別的同步?

    監(jiān)視器和鎖在Java虛擬機(jī)中是一塊使用的。監(jiān)視器監(jiān)視一塊同步代碼塊,確保一次只有一個(gè)線程執(zhí)行同步代碼塊。每一個(gè)監(jiān)視器都和一個(gè)對(duì)象引用相關(guān)聯(lián)。線程在獲取鎖之前不允許執(zhí)行同步代碼。

    6.什么是死鎖(deadlock)?

    兩個(gè)進(jìn)程都在等待對(duì)方執(zhí)行完畢才能繼續(xù)往下執(zhí)行的時(shí)候就發(fā)生了死鎖。結(jié)果就是兩個(gè)進(jìn)程都陷入了無(wú)限的等待中。

    7.如何確保N個(gè)線程可以訪問(wèn)N個(gè)資源同時(shí)又不導(dǎo)致死鎖?

    使用多線程的時(shí)候,一種非常簡(jiǎn)單的避免死鎖的方式就是:指定獲取鎖的順序,并強(qiáng)制線程按照指定的順序獲取鎖。因此,如果所有的線程都是以同樣的順序加鎖和釋放鎖,就不會(huì)出現(xiàn)死鎖了。

    8.Java內(nèi)存模型是什么?

    Java內(nèi)存模型規(guī)定和指引Java程序在不同的內(nèi)存架構(gòu)、CPU和操作系統(tǒng)間有確定性地行為。它在多線程的情況下尤其重要。Java內(nèi)存模型對(duì)一個(gè)線程所做的變動(dòng)能被其它線程可見(jiàn)提供了保證,它們之間是先行發(fā)生關(guān)系。這個(gè)關(guān)系定義了一些規(guī)則讓程序員在并發(fā)編程時(shí)思路更清晰。比如,先行發(fā)生關(guān)系確保了:

    線程內(nèi)的代碼能夠按先后順序執(zhí)行,這被稱為程序次序規(guī)則。

    對(duì)于同一個(gè)鎖,一個(gè)解鎖操作一定要發(fā)生在時(shí)間上后發(fā)生的另一個(gè)鎖定操作之前,也叫做管程鎖定規(guī)則。

    前一個(gè)對(duì)volatile的寫(xiě)操作在后一個(gè)volatile的讀操作之前,也叫volatile變量規(guī)則。

    一個(gè)線程內(nèi)的任何操作必需在這個(gè)線程的start()調(diào)用之后,也叫作線程啟動(dòng)規(guī)則。

    一個(gè)線程的所有操作都會(huì)在線程終止之前,線程終止規(guī)則。

    一個(gè)對(duì)象的終結(jié)操作必需在這個(gè)對(duì)象構(gòu)造完成之后,也叫對(duì)象終結(jié)規(guī)則。

    可傳遞性

    9.Java中的volatile變量是什么?

    volatile是一個(gè)特殊的修飾符,只有成員變量才能使用它。在Java并發(fā)程序缺少同步類(lèi)的情況下,多線程對(duì)成員變量的操作對(duì)其它線程是透明的。volatile變量可以保證下一個(gè)讀取操作會(huì)在前一個(gè)寫(xiě)操作之后發(fā)生。

    10.什么是線程安全?Vector是一個(gè)線程安全類(lèi)嗎?

    如果你的代碼所在的進(jìn)程中有多個(gè)線程在同時(shí)運(yùn)行,而這些線程可能會(huì)同時(shí)運(yùn)行這段代碼。如果每次運(yùn)行結(jié)果和單線程運(yùn)行的結(jié)果是一樣的,而且其他的變量的值也和預(yù)期的是一樣的,就是線程安全的。一個(gè)線程安全的計(jì)數(shù)器類(lèi)的同一個(gè)實(shí)例對(duì)象在被多個(gè)線程使用的情況下也不會(huì)出現(xiàn)計(jì)算失誤。很顯然你可以將集合類(lèi)分成兩組,線程安全和非線程安全的。Vector是用同步方法來(lái)實(shí)現(xiàn)線程安全的,而和它相似的ArrayList不是線程安全的。

Java基礎(chǔ)學(xué)習(xí):java線程練習(xí)題

 以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java線程練習(xí)題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美性最xxx | 黄色特一级片 | 尼龙丝袜社区aaaaa视频 | 成人18免费 | 天天精品在线 | 综合网天天操天天射 | 一级黄色片一级黄色片 | 久久精品亚洲综合 | 性做久久久久久久免费看 | 欧美一级棒 | 日韩免费影院 | 一区二区三区视频免费 | 欧美日本道免费一区二区三区 | 在线亚洲精品国产成人二区 | 天天弄天天干 | 亚洲成人第一 | 麻豆射区| 午夜免费片在线观看不卡 | 久久亚洲人成国产精品 | 国产高清免费的视频 | 久热re这里只有精品视频 | 天天操天天操 | 香蕉视视频 | 120秒视频高清观看免费 | 亚洲国产成人久久精品动漫 | 水果视频在线观看 | 韩国xxxx色视频在线观看 | 我要看黄色片 | 在线观看老湿视频福利 | 手机看片1204国内基地在线 | 日韩不卡一区二区 | 两个人看的www中文字幕 | 亚洲免费精品视频 | 中文字幕第12页 | 青青草国产精品欧美成人 | 一级黄色片免费的 | 香蕉视频黄色 | 日日噜噜噜夜夜爽爽狠狠 | 亚洲欧美日韩精品一区 | 在线成人免费看大片 | 2015xxx小明永久免费 |