看完了您的視頻,其中extends Thread 類的的那個(gè)例子設(shè)計(jì)的有缺陷.那三個(gè)火車票窗口應(yīng)該是共享那五張火車票,相當(dāng)于多個(gè)線程訪問(wèn)同一個(gè)資源,您將票總數(shù)(ticketsCounts)設(shè)置為成員變量就是錯(cuò)誤的,所以結(jié)果就是錯(cuò)誤!期待您更嚴(yán)謹(jǐn)?shù)恼n程內(nèi)容
2015-02-04
講師回答 / MartonZhang
你好,出現(xiàn)兩次“還剩3”是因?yàn)槌霈F(xiàn)了數(shù)據(jù)競(jìng)爭(zhēng),有時(shí)甚至可能出現(xiàn)“還剩-1”的情況,你可以去分析下線程占用的時(shí)機(jī),這個(gè)要用同步來(lái)解決,或者你給piao變量加個(gè)volatile關(guān)鍵字,這個(gè)你可以去看下《深入淺出java多線程》里面的講解,或者查下資料,另外后面我應(yīng)該也會(huì)錄制一期內(nèi)存可見(jiàn)性的視頻,也會(huì)講到這個(gè),但是應(yīng)該不是重點(diǎn),因?yàn)檫@個(gè)在《深入淺出Java多線程》中已經(jīng)有了!希望對(duì)你有所幫助!
2015-02-03