<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    多線程

    Java多線程初學(xué)者指南(12):使用Synchronized塊同步變量
         摘要: 我們可以通過synchronized塊來同步特定的靜態(tài)或非靜態(tài)方法。要想實(shí)現(xiàn)這種需求必須為這些特性的方法定義一個(gè)類變量,然后將這些方法的代碼用synchronized塊括起來,并將這個(gè)類變量作為參數(shù)傳入synchronized塊。在使用synchronized塊時(shí)應(yīng)注意,synchronized塊只能使用對(duì)象作為它的參數(shù)。如果是簡單類型的變量(如int、char、boolean等),不能使用synchronized來同步。  閱讀全文

    posted @ 2009-03-22 21:26 銀河使者 閱讀(7327) | 評(píng)論 (4)  編輯

    Java多線程初學(xué)者指南(11):使用Synchronized塊同步方法
         摘要: synchronized關(guān)鍵字有兩種用法。第一種就是在《使用Synchronized關(guān)鍵字同步類方法》一文中所介紹的直接用在方法的定義中。另外一種就是synchronized塊。我們不僅可以通過synchronized塊來同步一個(gè)對(duì)象變量。也可以使用synchronized塊來同步類中的靜態(tài)方法和非靜態(tài)方法。  閱讀全文

    posted @ 2009-03-22 21:15 銀河使者 閱讀(11345) | 評(píng)論 (1)  編輯

    Java多線程初學(xué)者指南(10):使用Synchronized關(guān)鍵字同步類方法
         摘要: 要想解決“臟數(shù)據(jù)”的問題,最簡單的方法就是使用synchronized關(guān)鍵字來使run方法同步。雖然可以使用synchronized來定義方法,但synchronized并不屬于方法定義的一部分,因此,synchronized關(guān)鍵字不能被繼承。如果在父類中的某個(gè)方法使用了synchronized關(guān)鍵字,而在子類中覆蓋了這個(gè)方法,在子類中的這個(gè)方法默認(rèn)情況下并不是同步的,而必須顯式地在子類的這個(gè)方法中加上synchronized關(guān)鍵字才可以。當(dāng)然,還可以在子類方法中調(diào)用父類中相應(yīng)的方法,這樣雖然子類中的方法不是同步的,但子類調(diào)用了父類的同步方法,因此,子類的方法也就相當(dāng)于同步了。  閱讀全文

    posted @ 2009-03-20 13:05 銀河使者 閱讀(9746) | 評(píng)論 (4)  編輯

    Java多線程初學(xué)者指南(9):為什么要進(jìn)行數(shù)據(jù)同步
         摘要: Java中的變量分為兩類:局部變量和類變量。局部變量是指在方法內(nèi)定義的變量,如在run方法中定義的變量。對(duì)于這些變量來說,并不存在線程之間共享的問題。因此,它們不需要進(jìn)行數(shù)據(jù)同步。類變量是在類中定義的變量,作用域是整個(gè)類。這類變量可以被多個(gè)線程共享。因此,我們需要對(duì)這類變量進(jìn)行數(shù)據(jù)同步。數(shù)據(jù)同步就是指在同一時(shí)間,只能由一個(gè)線程來訪問被同步的類變量,當(dāng)前線程訪問完這些變量后,其他線程才能繼續(xù)訪問。這里說的訪問是指有寫操作的訪問,如果所有訪問類變量的線程都是讀操作,一般是不需要數(shù)據(jù)同步的。  閱讀全文

    posted @ 2009-03-19 13:23 銀河使者 閱讀(4956) | 評(píng)論 (1)  編輯

    Java多線程初學(xué)者指南(8):從線程返回?cái)?shù)據(jù)的兩種方法
         摘要: 從線程中返回?cái)?shù)據(jù)和向線程傳遞數(shù)據(jù)類似。也可以通過類成員以及回調(diào)函數(shù)來返回?cái)?shù)據(jù)。但類成員在返回?cái)?shù)據(jù)和傳遞數(shù)據(jù)時(shí)有一些區(qū)別,下面讓我們來看看它們區(qū)別在哪。  閱讀全文

    posted @ 2009-03-19 13:02 銀河使者 閱讀(6893) | 評(píng)論 (0)  編輯

    Java多線程初學(xué)者指南(7):向線程傳遞數(shù)據(jù)的三種方法
         摘要: 在傳統(tǒng)的同步開發(fā)模式下,當(dāng)我們調(diào)用一個(gè)函數(shù)時(shí),通過這個(gè)函數(shù)的參數(shù)將數(shù)據(jù)傳入,并通過這個(gè)函數(shù)的返回值來返回最終的計(jì)算結(jié)果。但在多線程的異步開發(fā)模式下,數(shù)據(jù)的傳遞和返回和同步開發(fā)模式有很大的區(qū)別。由于線程的運(yùn)行和結(jié)束是不可預(yù)料的,因此,在傳遞和返回?cái)?shù)據(jù)時(shí)就無法象函數(shù)一樣通過函數(shù)參數(shù)和return語句來返回?cái)?shù)據(jù)。本文就以上原因介紹了幾種用于向線程傳遞數(shù)據(jù)的方法,在下一篇文章中將介紹從線程中返回?cái)?shù)據(jù)的方法。  閱讀全文

    posted @ 2009-03-16 23:18 銀河使者 閱讀(15841) | 評(píng)論 (2)  編輯

    Java多線程初學(xué)者指南(6):慎重使用volatile關(guān)鍵字
         摘要: volatile關(guān)鍵字相信了解Java多線程的讀者都很清楚它的作用。volatile關(guān)鍵字用于聲明簡單類型變量,如int、float、boolean等數(shù)據(jù)類型。如果這些簡單數(shù)據(jù)類型聲明為volatile,對(duì)它們的操作就會(huì)變成原子級(jí)別的。不過在使用volatile關(guān)鍵字時(shí)也要慎重,并不是只要簡單類型變量使用volatile修飾,對(duì)這個(gè)變量的所有操作都是原來操作,當(dāng)變量的值由自身的上一個(gè)決定時(shí),如n=n+1、n++等,volatile關(guān)鍵字將失效,只有當(dāng)變量的值和自身上一個(gè)值無關(guān)時(shí)對(duì)該變量的操作才是原子級(jí)別的,如n = m + 1,這個(gè)就是原級(jí)別的。所以在使用volatile關(guān)鍵時(shí)一定要謹(jǐn)慎,如果自己沒有把握,可以使用synchronized來代替volatile。  閱讀全文

    posted @ 2009-03-14 16:44 銀河使者 閱讀(9406) | 評(píng)論 (10)  編輯

    Java多線程初學(xué)者指南(5):join方法的使用
         摘要: 在上面的例子中多次使用到了Thread類的join方法。我想大家可能已經(jīng)猜出來join方法的功能是什么了。對(duì),join方法的功能就是使異步執(zhí)行的線程變成同步執(zhí)行。也就是說,當(dāng)調(diào)用線程實(shí)例的start方法后,這個(gè)方法會(huì)立即返回,如果在調(diào)用start方法后后需要使用一個(gè)由這個(gè)線程計(jì)算得到的值,就必須使用join方法。如果不使用join方法,就不能保證當(dāng)執(zhí)行到start方法后面的某條語句時(shí),這個(gè)線程一定會(huì)執(zhí)行完。而使用join方法后,直到這個(gè)線程退出,程序才會(huì)往下執(zhí)行。  閱讀全文

    posted @ 2009-03-12 09:07 銀河使者 閱讀(5989) | 評(píng)論 (14)  編輯

    Java多線程初學(xué)者指南(4):線程的生命周期
         摘要: 與人有生老病死一樣,線程也同樣要經(jīng)歷開始(等待)、運(yùn)行、掛起和停止四種不同的狀態(tài)。這四種狀態(tài)都可以通過Thread類中的方法進(jìn)行控制。  閱讀全文

    posted @ 2009-03-11 12:15 銀河使者 閱讀(8272) | 評(píng)論 (3)  編輯

    Java多線程初學(xué)者指南(3):使用Runnable接口創(chuàng)建線程
         摘要: 實(shí)現(xiàn)Runnable接口的類必須使用Thread類的實(shí)例才能創(chuàng)建線程。通過Runnable接口創(chuàng)建線程分為兩步:1. 將實(shí)現(xiàn)Runnable接口的類實(shí)例化。2. 建立一個(gè)Thread對(duì)象,并將第一步實(shí)例化后的對(duì)象作為參數(shù)傳入Thread類的構(gòu)造方法。最后通過Thread類的start方法建立線程。  閱讀全文

    posted @ 2009-03-10 11:56 銀河使者 閱讀(5874) | 評(píng)論 (0)  編輯

    Java多線程初學(xué)者指南(2):用Thread類創(chuàng)建線程
         摘要: 一個(gè)普通的Java類只要從Thread類繼承,就可以成為一個(gè)線程類。并可通過Thread類的start方法來執(zhí)行線程代碼。雖然Thread類的子類可以直接實(shí)例化,但在子類中必須要覆蓋Thread類的run方法才能真正運(yùn)行線程的代碼。  閱讀全文

    posted @ 2009-03-07 14:06 銀河使者 閱讀(6560) | 評(píng)論 (5)  編輯

    Java多線程初學(xué)者指南(1):線程簡介
         摘要: 線程是程序運(yùn)行的基本執(zhí)行單元。當(dāng)操作系統(tǒng)(不包括單線程的操作系統(tǒng),如微軟早期的DOS)在執(zhí)行一個(gè)程序時(shí),會(huì)在系統(tǒng)中建立一個(gè)進(jìn)程,而在這個(gè)進(jìn)程中,必須至少建立一個(gè)線程(這個(gè)線程被稱為主線程)來作為這個(gè)程序運(yùn)行的入口點(diǎn)。因此,在操作系統(tǒng)中運(yùn)行的任何程序都至少有一個(gè)主線程。  閱讀全文

    posted @ 2009-03-07 13:43 銀河使者 閱讀(5243) | 評(píng)論 (0)  編輯

    主站蜘蛛池模板: 黄色免费在线网站| 免费人妻av无码专区| 久久人午夜亚洲精品无码区| 亚洲国产精品自在拍在线播放| 久久久久久国产a免费观看不卡| 久久精品九九亚洲精品| 日本免费人成黄页网观看视频| 中文永久免费观看网站| ass亚洲**毛茸茸pics| 国产亚洲成人在线播放va| 在线永久免费的视频草莓| fc2免费人成在线视频| 亚洲va精品中文字幕| 亚洲热妇无码AV在线播放| 成人性生交大片免费看无遮挡| 巨胸喷奶水www永久免费| 2020亚洲男人天堂精品| 亚洲国产成人片在线观看| 国产成人在线免费观看| 1000部无遮挡拍拍拍免费视频观看| 疯狂做受xxxx高潮视频免费| 亚洲国产夜色在线观看| 亚洲女久久久噜噜噜熟女| 日本一道本高清免费| 免费观看无遮挡www的视频| 国产VA免费精品高清在线| 亚洲日韩精品无码专区加勒比☆ | 四虎精品视频在线永久免费观看| 青娱乐在线视频免费观看| 亚洲jjzzjjzz在线观看| 亚洲大尺度无码无码专区| 亚洲女同成人AⅤ人片在线观看| 在线看片无码永久免费视频| 精品视频一区二区三区免费| 一级毛片a免费播放王色电影| 亚洲一区二区三区成人网站| 亚洲婷婷天堂在线综合| 亚洲电影免费在线观看| 亚洲乱码国产乱码精品精| 亚洲人成影院在线观看| 国产成人免费a在线资源|