999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談Java多線程編程

2011-08-15 00:52:53
科技傳播 2011年3期
關鍵詞:機制方法

崔 妍

哈爾濱鐵道職業技術學院,黑龍江 哈爾濱 150081

1 多線程編程形式

創建線程需要一定的步驟,首先要創建線程,然后為其指定工作,當工作結整后再斃掉該線程。通常在Java中線程的編程形式通常有兩種,第一種所創建的線程類是經過繼承Thread類實現的,再用該線程重載run();另外一種是建立一個Runnable接口類,因為Java無法支持多繼承性,因此如果要求類通過線程方式運行,并且繼承其它類,就要采用唯一的方法——run()來實現Runnable接口,該方法就成為線程主函數。不同的程序運行方式不同所產生的結果也必然不同,主要由于兩個原因,一是由于循環中有個隨機暫停,另外一個重要的原因是由于無法保證線程的執行時間。Java按照其時間表來運行這些進程,每個線程可以有一個優先級與其相關聯。

2 設置線程的優先級

利用調度程序來完成線程的運行,調度方法有協作和搶先兩形式,相比之下搶先式在資源調度方面較之協作式有更大優勢,Java恰恰支持搶先式,所以分配優先級能力在多線程程式中十分重要,線程調度的決策就是以其為參照進行,程式中的某些部分也會根據其重要程度而變化,從而保證它的優先級與其價值是相對應的。優先級的設這要注意幾點:一是確定優先級必須采用1~10之間的整數;二是父線程的優先級要被子線程所繼承;三是線程的優先級可以通過setpriority()的調用進行改變。Java會先擇最高優先級的線程來執行,因此編寫程式時,要注意有些線程優先級較低,但也要給其執行的機會,此時優先級高的線程可以適當進入休眠狀態。

3 同步機制

在多線程程式中,所有線程都是各自獨立的執行體,不過線程代碼的模式卻是相同的,如果這些線程要協同工作,那么一定要注意其線程代碼是不是能夠重入控制,所以Java就提供了相應的同步機制,從而阻止多個線程的一個或者多個關鍵代碼在任意時間執行該代碼。該機制是建立在鎖的概念和監視器基礎上的,其中監視器是關鍵代碼周圍的保護,鎖則是監視器阻止線程進入監視器的軟件。其基本理念是:如果一個線程要進入監視器所監視的關鍵代碼,該線程要獲取一個與之相關的鎖;如果別的線程在使用這個鎖,那么Java就會強制性的要求其在一個與鎖以及監視器相關的區域進行等待;當鎖被釋放時,Java就移出等待狀態中的線程,同意其獲取瑣,并對監視器的關鍵代碼進行相應處理。Java自帶monitorexit以及monitorenter指令與鎖和監視器同步工作,不過這種級別相對較低,我們可以使用以下兩種方法執行線程同步:

3.1 synchronized方法

把synchronized的關鍵字加入到方法聲明中,來聲明synchronized()方法。在synchronized()方法中,類成員變量訪問由synchronized()方法控制,每個類實例都會對應一個瑣,如果synchronized()方法要執行就要獲取相應的鎖,否則會阻塞所屬的線程。一旦該方法進入執行狀態就會獨占一個鎖,并且直至其返回才會釋放。這種機制可以確保在同一時間對每個類實例,它的聲明為synchronized的成員函數最多只能有一個處于執行狀態,從而避免了類成員變量訪問產生沖突。JAVA中每個類都對應一把這樣的鎖,因此要控制其訪問類的靜態成員變量,就可以把類的靜態成員函數聲明為synchronized。

3.2 synchronized塊

上述方法中,如果代碼量較多,則聲明的效率會大受影響,因此我們可以用synchronized塊來解決該問題。synchronized塊中要獲取SynObject對應的鎖才可以執行,因為可以對任何代碼塊并且上鎖的對象可以任意指定,因此相對synchronized塊方法有較高的靈活性。

4 線程阻塞和死鎖

既然進行多線程編程就不得不考慮訪問共享資源的問題。雖然上述JAVA同步機制可以控制線程代碼重入,但很多時候多個線程在各自的執行過程中,會訪問諸如存儲處理等同一處資源,因為線程不同,其所執行的時機也不一致,所以為了防止不同線程在訪問共享資源時修改其內容,JAVA就提供了相應的阻塞機制來解決該問題,支持阻塞的方法有以下幾種:

1)線程阻塞的方法

第一種是sleep():該方法同意指定毫秒為單位的時間段作為參數,可以使線程在其指定時間段內不用得到CPU時間還可以進入阻塞狀態,當指定時間過去后,線程即可進入執行狀態;第二種是resume()以及suspend():要將這兩種方法進行配合使用,suspend()會使線程保持阻塞狀態,并且無法自動恢復,只有當調用resume()時,才可以重新使線程進入執行狀態;第三種是yield():該方法使得線程放棄當前得到的CPU時間,但是無法阻塞線程,因此線程仍然處于執行狀態中,并且可以隨時再取得CPU時間。當調用yield()時其效果等價于調度程序,認為該線程已經執行了足夠的時間,轉達向另一個線程;第四種方法是notify()以及wait():要將兩種方法配合使用。其中wait()有兩種形式使線程進入阻塞狀態,一種是同意指定一段時間為參數,如果與其以對應的notify()超出所指定的時間或者被調用,線程可以重新執行;另外一種是不指定參數,此時就要等到調用notify()才可以解除。這種配套使用的方法與上述resume()、suspend()的區別就在于該方法阻塞時不會釋放鎖,而resume()、suspend()剛好相反。

2)注意事項

notify()和wait()屬于Thread類,而resume()和suspend()則屬于Object類,即所有對象都有這一對方法,在阻塞時要釋放所占用的鎖。由于任何對象都有鎖,所以調用任何對象wait()法都會導致線程阻塞,且對象的鎖也被釋放;如果調用任何對象notify()法,就會導致調用該對象的wait()法阻塞線程中隨機選擇任意一個解除阻塞。此外,調用不指定超時期限的wait()法以及suspend()法,都有產生死鎖的可能,JAVA在語言級別上并不支持避免死鎖,因此在編程過程中要注意加以控制,避免死鎖。

[1]王昕.Java多線程機制在并發編程中的應用[J].現代商貿工業,2010(17).

[2]張迎,徐洪珍,湯彬.耘夕扣多線程技術及其在網絡編程中的應用[J].科技廣場,2008(5).

[3]李丹塞.Java多線程編程技術試議[J].軟件開發與設計,2010(2).

[4]賴萬欽.JAVA多線程編程技術探討[J].福建電腦,2008(6).

[5]袁云,邵時.基于多核處理器并行系統的任務調度算法[J].計算機應用,2008(28).

猜你喜歡
機制方法
構建“不敢腐、不能腐、不想腐”機制的思考
學習方法
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
定向培養 還需完善安置機制
中國衛生(2016年9期)2016-11-12 13:28:08
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
注重機制的相互配合
中國衛生(2014年3期)2014-11-12 13:18:12
主站蜘蛛池模板: 亚洲人精品亚洲人成在线| 免费无码网站| 欧美日韩国产在线播放| 成人午夜久久| 大陆国产精品视频| 97久久精品人人| 欧美日韩中文国产va另类| 欧洲亚洲一区| 亚洲日韩久久综合中文字幕| 夜夜操狠狠操| 国产凹凸视频在线观看| 久久一本日韩精品中文字幕屁孩| 国产精品永久久久久| 91美女视频在线观看| 欧美一级视频免费| 国产一二三区在线| 91色在线观看| 一级毛片免费高清视频| 国产三区二区| 91久久性奴调教国产免费| 40岁成熟女人牲交片免费| 久久77777| 中文字幕 日韩 欧美| jizz在线免费播放| 国产在线拍偷自揄拍精品| 亚洲bt欧美bt精品| 日本高清免费不卡视频| 她的性爱视频| 国产主播福利在线观看| 亚洲一区二区日韩欧美gif| 色婷婷视频在线| 欧美日韩精品在线播放| 久久先锋资源| 一本大道视频精品人妻| 91破解版在线亚洲| 免费高清毛片| 国产一级妓女av网站| 亚洲精品无码高潮喷水A| 国产三级韩国三级理| 国产高清在线观看| 久久频这里精品99香蕉久网址| 亚洲成在人线av品善网好看| 99资源在线| 亚洲成在人线av品善网好看| 91精选国产大片| 不卡无码h在线观看| 天天躁日日躁狠狠躁中文字幕| 亚洲va欧美va国产综合下载| 国产欧美性爱网| 色男人的天堂久久综合| 麻豆国产在线观看一区二区| 久久精品国产在热久久2019 | 国产乱子伦视频三区| 99久视频| 日韩少妇激情一区二区| 亚洲一区二区约美女探花| 露脸真实国语乱在线观看| 五月激情婷婷综合| 最新国产高清在线| 永久免费AⅤ无码网站在线观看| 亚洲国产欧洲精品路线久久| 91精品国产自产在线观看| 亚洲欧美一区二区三区麻豆| 精品91在线| 99久久精品国产自免费| 久久久久免费看成人影片| 久久人搡人人玩人妻精品一| 亚洲国产成熟视频在线多多| 2020亚洲精品无码| 午夜少妇精品视频小电影| 日本亚洲欧美在线| 97综合久久| 九九九精品视频| 中文字幕丝袜一区二区| 欧美一区精品| 成人另类稀缺在线观看| 国产91丝袜| 亚洲二区视频| 国产精品粉嫩| 美女亚洲一区| 亚洲av无码久久无遮挡| 美女无遮挡免费视频网站|