国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
讀《Java多線程設(shè)計(jì)模式》備忘
synchronized修飾符是不會(huì)被子類繼承的。也就是說,一個(gè)線程安全的可繼承類,有可在子類化時(shí)喪失安全性:P60
 
當(dāng)線程在寫指定字段的值時(shí),若這個(gè)字段不是volatile也沒有用synchronized同步化時(shí),其它線程可能看不到這種變化。這不是可不可以分割的問題,而是其它線程是否可見的問題。:P66
 
涉及到線程之后,如果一個(gè)類是SharedResource角色,那么它里面的protect域和public域(如果有,當(dāng)然可能性極小)就要極為小心,因?yàn)閷?duì)于包訪問權(quán)和子類訪問權(quán),有可能會(huì)發(fā)生線程問題。
 
有一個(gè)問題其實(shí)在TIJ3上就有困擾,就是主線程的退出問題實(shí)際和書上不符;現(xiàn)在我想有答案了。Thread.join()方法是讓主線程等待子線程執(zhí)行完畢后再退出,但是實(shí)際上子線程就算不調(diào)用join()方法,主線程也一樣等待子線程結(jié)束后才退出。原來是因?yàn)閖dk1.4以后主線程會(huì)自動(dòng)調(diào)用子線程的join()方法
 
養(yǎng)成良好習(xí)慣:共享標(biāo)志一定要定義成volatile
 
理解checked Exception的另一種思路:其實(shí)就是一個(gè)方法在一定情況下的特殊返回值。比如一個(gè)線程t在方法m中調(diào)用了Thread.sleep時(shí),另一個(gè)線程調(diào)用了t.interrupt(),這時(shí)t將拋出一個(gè)InterruptedException,而其意義并非發(fā)生了錯(cuò)誤,而只是得到一種不一般的返回值,交給catch()來處理。所以checked Exception可以理解為程序的一種擴(kuò)展流
 
使用Immutable的一個(gè)好處是在多線程環(huán)境下不用考慮同步問題,而其伴隨類--mutable則要使用synchronized進(jìn)行同步,損失效率
 
wait()/notifyAll()機(jī)制,是由某個(gè)被線程所調(diào)用的類的函數(shù)來調(diào)用,使調(diào)用者線程進(jìn)入鎖對(duì)象的wait區(qū),再把鎖釋放出來;notify也是由該類的函數(shù)所調(diào)用,喚醒wait區(qū)的一個(gè)線程,該線程要再對(duì)前述第一個(gè)函數(shù)進(jìn)行調(diào)用,首先還是要獲得鎖;wait()和notify()都必須在synchronized內(nèi)使用。
 
isInterrupted()和interrupt()要由線程類的實(shí)例所調(diào)用,可以在線程所調(diào)用類的方法中用Thread.currentThread().isInterrupted()調(diào)用。與wait/notify(All)的機(jī)制截然不同。
 
書評(píng):在read-write-lock parten中,物理鎖和邏輯鎖初步分離了出來。鎖和鎖要保護(hù)的對(duì)象不再是同一個(gè)對(duì)象,邏輯鎖可以作更復(fù)雜的事,實(shí)現(xiàn)更復(fù)雜的功能。
 
Swing采用了WorkerThread 模式,但是WorkerThread只有一個(gè):event-dispatching thread。Swing組件都假設(shè)只有event-dispatching thread這一個(gè)線程來訪問它,所以都不是線程安全的。也就是說,我們?nèi)粢宰约航⒌木€程去調(diào)用組件的方法,其實(shí)是危險(xiǎn)的。無論如何都想要調(diào)用組件的方法時(shí),就該將要執(zhí)行的操作內(nèi)容建立成Runnable對(duì)象,使用invokeAndWait方法交給Event-dispatching thread來調(diào)用。:P218
 
調(diào)用interrupt方法后,可以中斷線程。這里所說的中斷線程是指下面兩種中的一種:
1) 線程變成“中斷狀態(tài)”對(duì)“狀態(tài)”的反應(yīng)
2) 拋出“異常InterruptedException” 對(duì)“控制”的反應(yīng)。
通常會(huì)是1);只有在線程是sleep、wait、join時(shí)會(huì)時(shí)2)(且這個(gè)時(shí)候不會(huì)變成中斷狀態(tài))。
兩種檢查是否中斷狀態(tài)的方法:
調(diào)用Thread.interrputed方法后,線程就不是中斷狀態(tài)了。也就是說,只要調(diào)用一次Thread.inerrupted方法后,中斷狀態(tài)就會(huì)被清除。
       如果不想清除中斷狀態(tài),而要檢查現(xiàn)在線程是否被中斷,要使用isInterrupted實(shí)例方法:
       If(Thread.currentThread().isInterrupted()){
       }
 
       關(guān)于wait()和notify()/notifyAll()作為Object方法我想清楚了;interrupt()是Thread對(duì)象方法清楚了;sleep以及其它一些Thread類方法,我猜想應(yīng)該相當(dāng)于Thread.getCurrentThread().XXX()吧--待以后的學(xué)習(xí)。
 
       執(zhí)行ClientThread(以及任何其它線程都一樣)的構(gòu)造器的線程與執(zhí)行run方法的線程相異。P448
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java并發(fā)編程:3-Thread類的使用
多線程編程——實(shí)戰(zhàn)篇(四)
Java多線程17:中斷機(jī)制
你應(yīng)該知道的58道高并發(fā)面試總結(jié),你掌握了幾道?(含答案)
synchronized(){} 放在while里面和外面區(qū)別 可見性 同步代碼塊 并發(fā) 多線程
Java 多線程(八) 線程狀態(tài)圖
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服