第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

細(xì)說多線程之Thread VS Runnable

難度初級(jí)
時(shí)長 1小時(shí) 0分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.63
171人評(píng)價(jià) 查看評(píng)價(jià)
9.8 內(nèi)容實(shí)用
9.6 簡潔易懂
9.5 邏輯清晰

講師回答 / MartonZhang
線程執(zhí)行的過程不是原子操作,當(dāng)然可以被其他其他線程交叉進(jìn)來執(zhí)行了!不然就不存在線程不安全的問題了!

講師回答 / MartonZhang
標(biāo)準(zhǔn)做法是使用標(biāo)志位退出,stop淘汰掉是因?yàn)闀?huì)帶來一些潛在的威脅,因?yàn)閟top會(huì)在任何可能的時(shí)候停止線程,而不不一定是合理的時(shí)候,很有可能會(huì)帶來線程的不安全或者死鎖等問題。

講師回答 / MartonZhang
你好,安全的實(shí)現(xiàn)方式很明顯是應(yīng)該加互斥的,但是《深入淺出java多線程》中已經(jīng)有了比較詳細(xì)的講解,所以我這里沒必要做重復(fù)的講解,課程的重點(diǎn)不在這里,沒加入互斥也是為了給大家一些思考和改進(jìn)的余地!

講師回答 / MartonZhang
你好,ticketsCont是實(shí)例變量,它的值自然是存在堆中(每個(gè)java對(duì)象在堆中都會(huì)占據(jù)一定內(nèi)存,而實(shí)例變量的值就是存儲(chǔ)在這塊內(nèi)存中,類似于結(jié)構(gòu)體,因此每個(gè)對(duì)象對(duì)應(yīng)一個(gè)ticketsCont的值),ticketsCont跟值傳遞沒有關(guān)系啊,如果是Runnable方式的話,傳遞的也只是MyThread對(duì)象引用的副本,不管ticketsCont的事,但是因?yàn)閠icketsCont的值在引用和引用副本所指向的堆內(nèi)存中,所以無論是引用還是引用副本改變了堆內(nèi)存中ticketsCont的值,都會(huì)產(chǎn)生效果!

講師回答 / MartonZhang
從報(bào)錯(cuò)中看是OpenJDK版本的問題,應(yīng)該是-f參數(shù)在你當(dāng)前版本的VM上不支持,如果要使用-f,貌似要JDK1.7以上,另外注意你的操作系統(tǒng)64位還是32位的,64位的貌似要加個(gè)參數(shù),具體記不清了,你google一下!

講師回答 / MartonZhang
您好,加入volatile其實(shí)是通過加內(nèi)存屏障使得每次讀寫volatile變量都從主內(nèi)存中刷新,這樣可以保證volatile變量及其之前的變量值的改變可以被其它線程立即看到,這當(dāng)然前提是該變量是共享的,在這里可以保證不會(huì)出現(xiàn)打印出來的兩個(gè)或三個(gè)相同count值的情況,跟其他的沒有關(guān)系!

講師回答 / MartonZhang
另外,第一種情況,你要搞清楚,Ingeger是不能作為同步的對(duì)象的,因?yàn)槿菀装l(fā)生拆裝箱操作,比如你的count--,實(shí)際上相當(dāng)于Integer?count ?= new Integer(count-1);這個(gè)時(shí)候很明顯,new出了一個(gè)新的Integer對(duì)象,已經(jīng)不是原來的對(duì)象了,同步自然也就無效了!你可以去看下Integer的一些方法的源碼!或者看下一些書對(duì)拆裝箱部分的講解!

講師回答 / MartonZhang
你好,出現(xiàn)兩次“還剩3”是因?yàn)槌霈F(xiàn)了數(shù)據(jù)競爭,有時(shí)甚至可能出現(xiàn)“還剩-1”的情況,你可以去分析下線程占用的時(shí)機(jī),這個(gè)要用同步來解決,或者你給piao變量加個(gè)volatile關(guān)鍵字,這個(gè)你可以去看下《深入淺出java多線程》里面的講解,或者查下資料,另外后面我應(yīng)該也會(huì)錄制一期內(nèi)存可見性的視頻,也會(huì)講到這個(gè),但是應(yīng)該不是重點(diǎn),因?yàn)檫@個(gè)在《深入淺出Java多線程》中已經(jīng)有了!希望對(duì)你有所幫助!
首頁上一頁12下一頁尾頁
課程須知
學(xué)習(xí)本課程前,你需要熟練掌握J(rèn)ava的基礎(chǔ)語法,熟悉Java中創(chuàng)建線程的兩種方式,熟悉Java多線程中常用的一些方法。
老師告訴你能學(xué)到什么?
1、多線程創(chuàng)建方式的比較和選擇 2、線程的生命周期、守護(hù)線程

微信掃碼,參與3人拼團(tuán)

微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對(duì)慕課網(wǎng)的支持!

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?

舉報(bào)

0/150
提交
取消