在日常學習,、工作或生活中,大家總少不了接觸作文或者范文吧,,通過文章可以把我們那些零零散散的思想,聚集在一塊,。相信許多人會覺得范文很難寫,?以下是我為大家搜集的優(yōu)質(zhì)范文,僅供參考,,一起來看看吧
java的常見問題 java的設計篇一
導語:java可以編寫桌面應用程序,、web應用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應用程序等,。下面是java設計的常見問題,,歡迎參考!
調(diào)用 wait ()/notify ()/notifyall ()中的任何一個方法時,如果當前線程沒有獲得該對象的鎖,,
那么就會拋出 illegalmonitorstateexception 的異常
也就是說程序在沒有執(zhí)行對象的任何同步塊或者同步方法時,,
仍然嘗試調(diào)用 wait ()/notify ()/notifyall ()時,。由于該異常是 runtimeexcpetion 的子類,
所以該異常不一定要捕獲(盡管你可以捕獲只要你愿意
作為 runtimeexception,,此類異常不會在 wait (),notify (),notifyall ()的方法簽名提及,。
同步靜態(tài)方法時會獲取該類的“class”對象,所以當一個線程進入同步的靜態(tài)方法中時,,
線程監(jiān)視器獲取類本身的對象鎖,,其它線程不能進入這個類的`任何靜態(tài)同步方法。
它不像實例方法,,因為多個線程可以同時訪問不同實例同步實例方法,。
可以,一個非同步方法總是可以被調(diào)用而不會有任何問題,。
實際上,,java 沒有為非同步方法做任何檢查,,鎖對象僅僅在同步方法或者同步代碼塊中檢查,。
如果一個方法沒有聲明為同步,即使你在使用共享數(shù)據(jù)java照樣會調(diào)用,,而不會做檢查是否安全,,
所以在這種情況下要特別小心。一個方法是否聲明為同步取決于臨界區(qū)訪問(critial section access),,
如果方法不訪問臨界區(qū)(共享資源或者數(shù)據(jù)結(jié)構(gòu))就沒必要聲明為同步的,。
不能,因為一個對象已經(jīng)同步了實例方法,,線程獲取了對象的對象鎖,。
所以只有執(zhí)行完該方法釋放對象鎖后才能執(zhí)行其它同步方法。
線程餓死和活鎖雖然不像死鎖一樣是常見的問題,,但是對于并發(fā)編程的設計者來說就像一次邂逅一樣,。
當所有線程阻塞,或者由于需要的資源無效而不能處理,,不存在非阻塞線程使資源可用,。
javaapi 中線程活鎖可能發(fā)生在以下情形:
當所有線程在程序中執(zhí)行 (0),參數(shù)為 0 的 wait 方法,。
程序?qū)l(fā)生活鎖直到在相應的對象上有線程調(diào)用 ()或者 all (),。
當所有線程卡在無限循環(huán)中,。
s("content_relate");
【java設計常見問題】相關文章:
java常見問題集錦
09-25
java工程師面試的常見問題11-22
java程序設計示例教程11-21
java的動態(tài)考試系統(tǒng)的設計12-03
java設計模式之單例模式11-23
java程序設計里的線程11-22
java網(wǎng)上考試系統(tǒng)的設計和實現(xiàn)12-04
java語言程序設計實驗報告11-13
java教程之java編程基礎10-02
java面向?qū)ο蟪绦蛟O計的基本概念10-04